2016-10-05 12 views
1

두 개의 파일 (src.csv 및 dst.csv)이 있습니다. 아래 코드는 src.csv에서 두 번째 행을 읽고 dst.csv에 추가합니다. 문제는 dst.csv의 출력이 큰 따옴표 ("") 안에 들어 있다는 것입니다.csv 행에서 큰 따옴표를 제거하십시오.

예상 결과 :

10, 5, 5, 10, 1 

출력 :

"10, 5, 5, 10, 1" 

내가 csv.writer에서 quoting=csv.QUOTE_NONE, escapechar=' '를 사용하여 시도하고 출력은 이제 각각의 CSV 값 후 빈 공간을 포함하고 있지만이 따옴표를 제거 않습니다 .

import csv 

with open('src.csv', 'r') as src, open('dst.csv', 'a', newline='') as dst: 
    wr = csv.writer(dst, dialect='excel', delimiter=',', quoting=csv.QUOTE_NONE, escapechar=' ') 
    next(src) 
    for row in src: 
     wr.writerow([row.rstrip('\n')]) 

어떤 제안 : 여기

내 코드?

+0

그냥'wr.writerow (row) '를 사용하십시오. – martineau

+0

이 변경하면 다음과 같습니다. '1,0, ,, 5, ,, 5, ,, 1,0, ,, 1, ' –

+0

내가 의미 한 바가 없어야합니다. @ tdelaney의 [answer] (http://stackoverflow.com/a/39864180/355230)를 참조하십시오. – martineau

답변

2

원본 파일 행을 열로 분할하지 않아도 결국 1 열의 CSV로 작성됩니다. 대신 독자를 사용하십시오 :

import csv 

with open('src.csv', 'r') as src, open('dst.csv', 'a', newline='') as dst: 
    wr = csv.writer(dst, dialect='excel', delimiter=',', quoting=csv.QUOTE_NONE, escapechar=' ') 
    next(src) 
    reader = csv.reader(src) 
    for row in reader: 
     wr.writerow(row) 
0

숫자 목록으로 행을 읽으려면 csv.reader()을 사용해야한다고 생각합니다. 행을 하나의 문자열로 읽으므로이 문자열에 ,이 있으므로 csv.writer에 ""을 추가해야합니다.

관련 문제