我对 Python 很陌生。
我正在创建一个可以运行的脚本,该脚本将处理 XLSX 文件并将其转换为管道“|”分隔的 csv。谢天谢地,我已经弄清楚了这一点。但是,我正在尝试添加一个额外的步骤 - 我希望使用相同的脚本来删除文件中的所有逗号。我以为我已经有了它,但是,我收到以下错误消息:值错误:对已关闭文件进行 I/O 操作。据我所知,我可能有缩进问题,但我不知道在哪里。我尝试了几种组合。这是我的代码:
import pandas as pd
import csv
data_xls = pd.read_excel('Chartwell.xlsx', 'Chartwell', index = False)
data_xls.to_csv('your_csv2.csv', index = False, sep='|', encoding='utf-8')
input_file = open('your_csv2.csv', 'r')
output_file = open('No_Commas.csv', 'w')
for line in input_file:
line = line.replace(",", " ")
output_file.write(line)
output_file.close()
input_file.close()
最佳答案
就是这样。 (基本上,您在第一次通过 for
迭代时关闭了文件。)尝试以下更改:
input_file = open('your_csv2.csv', 'r')
output_file = open('No_Commas.csv', 'w')
for line in input_file:
line = line.replace(",", " ")
output_file.write(line)
output_file.close()
input_file.close()
更好的是,如果您有更新版本的 Python,则可以使用 with
block ,该 block 会在您离开范围时自动关闭文件:
with open('your_csv2.csv', 'r') as f:
input_file = f.readlines()
with open('No_Commas.csv', 'w') as output_file:
for line in input_file:
line = line.replace(",", " ")
output_file.write(line)
关于python - 值错误 : I/O operation on closed file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38386725/