2017-10-20 11 views
1

CSVの区切り文字を;(セミコロン)から,(カンマ)に変更する簡単なシナリオがあります。以下のコードカンマ区切り記号をCSV形式でセミコロンからコンマに変換しますか?

コード:

import csv 
semicolonin = csv.reader(r"C:\pyscripts\1.csv", delimiter=';') 
commaout = csv.writer(r"C:\pyscripts\1.csv", delimiter=',') 
for row in semicolonin: 
    commaout.writerow(row) 

しかし、私はエラーが表示されます。何か不足していますか?

TypeError: argument 1 must have a "write" method 

commaout = csv.writer(r"C:\pyscripts\1.csv", delimiter=',')を実行している間。

+3

あなたが代わりにファイルオブジェクトのファイルパスを通過しました。 'csv.reader(open(r" C:\ pyscripts \ 1.csv ")、区切り文字= ';')' –

+0

あなたは出力のために別のファイル名を入力したいと思っています。すべてのデータを失うことがあなたの目標でない限り。 –

答えて

1

あなたはそうのように、ライターメソッドにファイルオブジェクトを提供する必要があります。

import csv 
with open(r"C:\pyscripts\1.csv") as in_file, open(r"C:\pyscripts\1.csv", 'w') as out_file: 
    semicolonin = csv.reader(in_file, delimiter=';') 
    commaout = csv.writer(out_file, delimiter=',') 
    for row in semicolonin: 
     commaout.writerow(row) 
+0

上記のコードは、csvファイル内のパス名のみを出力します。 – Alex

+0

ライターと同じ問題です。パスだけでなく、ファイルオブジェクトをcsv.readerに渡す必要があります。 – Lumen

+0

ここで解決策は何ですか? – Alex

関連する問題