我是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()
答案 0 :(得分:2)
就是这样。 (基本上你是在第一次通过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
块,当你离开范围时它会自动关闭文件:
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)