문제

DB (전체 레코드)의 데이터를 읽는 내보내기 기능이 있으며 .txt 파일에 기록합니다. 각 필드는 ''; '; 내가 직면하고있는 문제는 일부 필드에 CRLF가 포함되어 있고 파일에 작성하면 다음 줄로 이동하여 파일의 구조를 파괴한다는 것입니다.

유일한 해결책은 CRLF를 사용자 정의 값으로 바꾸고 가져 오기에 CRLF로 다시 교체하는 것입니다. 그러나이 파일이 크기 때문에이 솔루션이 마음에 들지 않으며 교체 작업은 성능을 줄입니다 ....

다른 아이디어가 있습니까?

감사합니다!

도움이 되었습니까?

해결책

예, 문자열 값을 인용하는 CSV 생성기를 사용하십시오. 예를 들어, Python 's csv 기준 치수.

예를 들어 (찢어지고 수정되었습니다 csv 문서):

import csv
def write(filename):
    spamWriter = csv.writer(open(filename, 'w'), quoting=csv.QUOTE_ALL)
    spamWriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamWriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam\nbar'])

def read(filename):
    reader = csv.reader(open(filename, "rb"))
    for row in reader:
        print row

write('eggs.csv')
read('eggs.csv')

출력 :

['Spam', 'Spam', 'Spam', 'Spam', 'Spam', 'Baked Beans']
['Spam', 'Lovely Spam', 'Wonderful Spam\r\nbar']

다른 팁

파일을 내보내고 가져 오는 방법을 제어 할 수 있다면 XML 사용을 고려할 수 있습니다. 또한 값에서 ","와 같은 리터럴을 표시하는 이중 인용문을 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top