[英]Python - Zipfile with no parent folder
我可以將文件壓縮為單個zip文件,但是當我打開zip文件時,內容始終包含一個“父文件夾”,該名稱與zip文件itslef的名稱相同。
我只是試圖創建一個不包含任何文件夾的zip文件。
當前:abc.zip> abc(文件夾)>文件
尋找:abc.zip>文件
def create_zip(file_name, file_dir):
"""
Function to create zip archive
"""
os.chdir(file_dir)
zipfiles_list = ['csv', 'txt']
file_name_part = file_name
zip_name = '{0}.zip'.format(file_name_part)
with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as
zip_archive:
for file_extension in zipfile_list:
full_file_path = '{0}.{1}'.format(file_name_part, file_extension)
zip_archive.write(full_file_path, basename(full_file_path))
這可能嗎? 我已經看到,如果在創建zip文件后重命名它,它仍會將內容提取到與zip文件名匹配的文件夾中。
在您的代碼中,您for file_extension in zipfile_list:
了“ zipfiles ”:錯誤(最后沒有“ s”)。
它必須是for file_extension in zipfiles_list:
。
比起我在Win7x86中運行您的代碼-可以,沒有內部文件夾(python 3.6.6)。
在Win 10x64上嘗試過-相同。
Xubuntu 18.04 x64-相同,沒有文件夾。
這是我的腳本:
from os.path import basename
from os import path
import os
import zipfile
# current directory
script_dir = path.dirname(path.abspath(__file__))
def create_zip(file_name, file_dir):
"""
Function to create zip archive
"""
os.chdir(file_dir)
zipfiles_list = ['csv', 'txt']
file_name_part = file_name
zip_name = '{0}.zip'.format(file_name_part)
with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zip_archive:
for file_extension in zipfiles_list:
full_file_path = '{0}.{1}'.format(file_name_part, file_extension)
zip_archive.write(full_file_path, basename(full_file_path))
create_zip("first", script_dir)
在包含腳本的目錄中,有兩個文件:first.txt和first.csv。 運行此腳本后,我確實擁有一個zip文件first.zip,其中包含兩個文件:first.txt和first.csv。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.