无法从 Jupyter Notebook 压缩文件

问题描述 投票:0回答:3

我尝试压缩文件,我使用了 https://thispointer.com/python-how-to-create-a-zip-archive-from-multiple-files-or-directory/

中的示例
with ZipFile('sample2.zip', 'w') as zipObj2:

   # Add multiple files to the zip
   zipObj2.write('sample_file.csv')

sample2.zip
已创建,但它是空的。当然,
csv
文件存在并且不为空。

  • 我从 Jupyter Notebook 运行此代码

编辑:我正在使用相对路径-

input_dir = "../data/example/" 
with zipfile.ZipFile(os.path.join(input_dir, 'f.zip'), 'a') as zipObj2: 
zipObj2.write(os.path.join(input_dir, 'f.tif'))
python jupyter-notebook zip
3个回答
2
投票

您尝试关闭 zip 文件来保存吗?

from zipfile import ZipFile

with ZipFile('sample2.zip', 'w') as zipObj2:
   zipObj2.write('sample_file.csv')
   zipObj2.close()

0
投票

我对你的问题有点困惑,但如果我是正确的,听起来你正试图将多个 CSV 文件放在一个压缩文件中?如果是这样,这就是您正在寻找的:

#initiate files variable that contains the directory from which you wish to zip csv files
files=[f for f in os.listdir("./your_directory") if f.endswith('.csv')]

#initalize empty DataFrame 
all_data = pd.DataFrame()

#iterate through the files variable and concatenate them to all_data 
for file in files:
df = pd.read_csv('./your_directory' + file)
all_data = pd.concat([all_data, df])

然后调用新的 DataFrame(all_data) 来验证内容是否已传输。


0
投票

此代码片段允许您仅压缩特定文件类型

import os import shutil from unittest.mock import patch

_os_path_isfile = os.path.isfile


def accept(path):
    file_name, file_extension = os.path.splitext(path)
    if file_extension not in [".py", ".ipynb"]:
        return False
    print("archiving %r" % path)
    return _os_path_isfile(path)



with patch("os.path.isfile", side_effect=accept):
    shutil.make_archive("archive_file_name", "zip", ".")
© www.soinside.com 2019 - 2024. All rights reserved.