2016-10-05 9 views
1

私は2つのファイル:src.csvとdst.csvを持っています。次のコードは、src.csvから2行目を読み取り、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には""を追加する必要があります。

関連する問題