存档目录中的所有 csv 文件
Archive all csv files in directory
我有一个 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 文件的内容?
您收到该错误是因为 file
in:
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())
我有一个 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 文件的内容?
您收到该错误是因为 file
in:
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())