私は自分のSQLにインポートできるようにテキストファイルをフォーマットするpythonスクリプトを書いています。私はPython 3.5を使用しており、私のコードは完璧に動作します。改行がpython 2.7で動作しない
しかし、Python 2.7でコードを実行しようとすると、機能しなくなり、このエラーがスローされます。 (私は2.7を使用する必要があります)私はこれまで分からなかった。
TypeError: 'newline' is an invalid keyword argument for this function.
改行を使用しないと、データ内の行がスキップされ、空白行として表示されます。それは、Python 2.7との互換性がありますので、私は自分のコードを変更するにはどうすればよい
import csv
import os
my_file_name = os.path.abspath('NVG.txt')
cleaned_file = "cleanNVG.csv"
BulkImport_file = 'BulkImport.txt'
remove_words = ['INAC-EIM','-INAC','TO-INAC','TO_INAC','SHIP_TO-inac','SHIP_TOINAC']
with open(my_file_name, 'r', newline='') as infile, open(cleaned_file, 'w',newline='') as outfile:
writer = csv.writer(outfile)
cr = csv.reader(infile, delimiter='|')
writer.writerow(next(cr)[:25])
for line in (r[0:25] for r in cr):
if not any(remove_word in element for element in line for remove_word in remove_words):
line[11]= line[11][:5]
writer.writerow(line)
infile.close()
outfile.close()
with open(cleaned_file, 'r') as fin, open(BulkImport_file, 'w') as fout:
reader = csv.DictReader(fin)
writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
writer.writeheader()
writer.writerows(reader)
:
は、ここに私のコードです。本当にありがとう!
python 2.7の 'open'関数に' newline'引数はありません – Arman
python 2.7のnewlineに似た引数がありますか? – Cesar
[Python 3.5 Open function doc](https://docs.python.org/3/library/functions.html#open) – Arman