Python can';t压缩Jupyter笔记本中的文件

Python can';t压缩Jupyter笔记本中的文件,python,jupyter-notebook,zip,zipfile,Python,Jupyter Notebook,Zip,Zipfile,我尝试压缩文件,我使用了 sample2.zip已创建,但为空。当然,csv文件存在并且不是空的 我从Jupyter笔记本运行此代码 编辑:我正在使用相对路径- 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')) 我对你

我尝试压缩文件,我使用了

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

  • 我从Jupyter笔记本运行此代码
编辑:我正在使用相对路径-

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'))

我对你的问题有点困惑,但如果我是对的,听起来你好像想在一个压缩文件中放置多个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])

然后调用新的数据帧(所有数据)以验证内容是否已传输。

您是否尝试关闭zip文件以保存

from zipfile import ZipFile

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

我正在尝试实际创建一个包含csv文件的新.zip文件。您确定
sample\u file.csv
位于创建
sample2.zip
的同一文件夹中吗?是的,文件夹包含sample\u file.csv,输出文件(sample2.zip)保存到同一位置您的代码对我来说使用Py2.7很好,3.6和3.8 Jupyter笔记本是否也可以使用?有没有可能是它导致了问题?@obart我还会从
文件/Trust notebook
检查文件夹的写入权限和笔记本的可信任性。
with
语句的目的是什么?不完全知道,但肯定知道它用于创建、读取和覆盖文件。我查看了zipfile的教程,它允许自动关闭支持它的类的对象;所以在上面的代码中它是无用的。根据dunder exit的实现情况,它甚至可能是危险的。这可能是因为根据zipfile的版本,我在jupyter笔记本上尝试了这段代码,但没有关闭zip文件,它返回了一个空的zip文件。当我关闭它时,我达到了我的目标
from zipfile import ZipFile

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