提问人:ifrj 提问时间:7/28/2023 更新时间:7/28/2023 访问量:27
当我将 .txt 文件写入 zip 文件(使用 .txt 文件的路径)时,默认情况下它会在 zip 文件中创建文件夹?
When I write .txt files to zip file (using the paths of the .txt files), it creates folders within the zip file by default?
问:
因此,我有一个列表,其中包含两个文本文件的路径:
file_paths = ['/tmp/bmex-2023-07-28-w0hrsh25/MFII_MC_TICK_H_20230703.TXT', '/tmp/bmex-2023-07-28-w0hrsh25/MFII_MC_TICK_AE_20230703.TXT']
我想将这两个文本文件写入一个 zip 文件,我这样做:
with ZipFile(str(new_file), 'w', compression=ZIP_DEFLATED) as merged_archive:
for file in file_paths:
with open(file, 'r') as f:
merged_archive.writestr(file, f.read())
我省略了一些细节,它非常复杂,但如果相关,我可以包含它。我不认为是,唯一相关的部分是有问题的 zip 文件。new_file
merged_archive
当我打开zip文件时,我期望两个文本文件,但是当我执行上述操作并打开zip文件后,我得到:
zip_file/
├── tmp/
├── embedded/
├── bmex-equities3-2023-07-28-n3matya5
└── two_text_files_are_here
我可以理解它为什么要创建这些目录,显然是因为我向它提供了文件路径而不是文件名。
但是我想不出解决方案,因为如果我只给它提供文件名,它会返回如下内容:
FileNotFoundError: [Errno 2] No such file or directory: 'MFII_MC_TICK_H_20230703.TXT'
我完全理解!
有什么想法吗?
答: 暂无答案
评论
writestr
FileNotFoundError