归档目录中的所有csv文件

时间:2015-04-15 22:45:27

标签: python-2.7 csv zipfile

我有一个python脚本,它在运行时(每周)创建一些大的csv文件。我想将这些文件存档在名为“archive”的子目录中,并在将来引用一个日期戳。

我使用zipfile找到的解决方案无效。我希望有人能指出我正确的方向。这就是我到目前为止所做的:

import glob
import zipfile
from datetime import datetime

file_list = [file for file in glob.glob('*.csv')]

output_file = 'Report_' + datetime.now().strftime('%Y%m%d') + '.zip'

with zipfile.ZipFile('archive\\'+output_file, 'w') as zf:
    for n, file in enumerate(file_list):
        zf.writestr("{}.csv".format(i), file.read())
zf.close()

我正在发现以下错误,我意识到这是因为我正在尝试将文件名作为文件内容读取。

    zf.writestr("{}.csv".format(i), file.read())

AttributeError: 'str' object has no attribute 'read'

如何传递zf.writestr我的csv文件的内容?

1 个答案:

答案 0 :(得分:0)

您收到该错误是因为file位于:

for n, file in enumerate(file_list):

str。你可能打算打开文件:

for n, file in enumerate(file_list):
    with open(file,'r') as f:
        zf.writestr("{}.csv".format(i), f.read())