我对Python感到困惑。 ValueError:对关闭的文件进行I / O操作

时间:2018-11-14 22:34:29

标签: python

Kida在这里迷路了。我正在尝试获取统一的csv,并且不断收到此错误:

  

csv_merge.write(行)中的文件“ consolidate.py”,第26行

     

ValueError:对关闭的文件进行I / O操作。

我尝试了移动缩进:

csv_header='name,location,age,phonenumber'
csv_out = 'consolidated.csv'

csv_d
dir_tree = os.walk(csv_dir)
for dirpath, dirnames, filenames in dir_tree:
   pass

csv_list = []
for file in filenames:
   if file.endswith('.csv'):
      csv_list.append(file)

csv_merge = open(csv_out, 'w')
csv_merge.write(csv_header)
csv_merge.write('\n')ir = os.getcwd()
for file in csv_list:
        csv_in = open(file)
        for line in csv_in:
           if line.startswith(csv_header):
              continue
           csv_merge.write(line)
        csv_in.close()
        csv_merge.close()
print('Verify consolidated CSV file : ' + csv_out)

但这没用。如何解决此错误?

1 个答案:

答案 0 :(得分:0)

您永远不会正确打开csv_merge,即使您在写了csv_list中的第一项之后仍然关闭了csv_merge。

您为什么还要使用csv_merge.close()之类的东西?
惯例是使用with open(csv_merge, 'w') as f:之类的方法,这样即使循环或脚本无法正确执行,文件也始终会关闭。