【问题标题】:csv.writer won't close when writing things into an excel csv file将内容写入 excel csv 文件时,csv.writer 不会关闭
【发布时间】:2019-05-21 14:52:10
【问题描述】:

我正在尝试将许多 csv 文件编译成一个大文件。当我运行我的程序(如下)时,它会用正确的信息填充指定 CSV 文件的第一行,但随后它开始可变地间隔数据并留下空单元格。它也不会停止填充 csv 文件,它是连续的。合并后的数据应该有几千KB,但达到了500万KB后也没有停止,甚至没有输入我需要的所有数据。目录变量定义为导入 csv 文件。

我尝试在代码末尾添加 wf.close() 语句,但留下消息“AttributeError: '_csv.writer' object has no attribute 'close'”

csv_file_list = glob.glob(Dir + '/*.csv')
wf = csv.writer(open(Avg_Dir + '.csv','w'),delimiter = ',') #wb to w

for files in csv_file_list:
    #print (files) #debug, confirmed
    rd = csv.reader(open(files,'r'),delimiter = ',')
    #rd.next()
    for row in rd:
        print (row) #debug, confirmed
        wf.writerow(row)

我也尝试编写 with 语句,但我遇到了同样的问题,它运行了一段时间,然后开始在我的组合 csv 文件中打印空单元格,并且没有关闭。我主要是想弄清楚如何关闭它,以便我组合的 csv 文件具有正确的信息,并且不会被无休止地添加。

【问题讨论】:

  • 关闭它会有所帮助
  • 正如@SuperStew 建议的那样,您需要在完成后关闭文件(在循环之外)
  • @Cabrra 如何关闭它?我尝试了 wf.close 语句,但不起作用,我尝试了 with 语句,但似乎也不起作用

标签: python excel file csv concatenation


【解决方案1】:

使用with statement自动打开和关闭csv文件

with open(path, 'w') as file:
    w = csv.writer(file)
    ...

【讨论】:

    猜你喜欢
    • 2019-04-25
    • 2014-07-02
    • 1970-01-01
    • 2016-07-30
    • 2015-08-05
    • 2018-04-22
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多