没有父文件夹的 Zipfile
Zipfile with no parent folder
我可以将文件压缩成一个 zip 文件,但是当我打开 zip 文件时,内容总是包含一个 "parent folder",它与 zip 文件本身具有相同的名称。
我只是想创建一个根本不包含任何文件夹的 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 文件名匹配的文件夹中。
Original zip extracts to abc folder
Renamed same exact zip and contents extract to folder with new name
在您的代码中,您在单词“zipfiles”中有一个错误:for file_extension in zipfile_list:
(最后没有 '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。在 运行ing 这个脚本后,我得到了 zip 文件 first.zip,里面有两个文件:first.txt 和 first.csv.
我可以将文件压缩成一个 zip 文件,但是当我打开 zip 文件时,内容总是包含一个 "parent folder",它与 zip 文件本身具有相同的名称。
我只是想创建一个根本不包含任何文件夹的 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 文件名匹配的文件夹中。
Original zip extracts to abc folder
Renamed same exact zip and contents extract to folder with new name
在您的代码中,您在单词“zipfiles”中有一个错误:for file_extension in zipfile_list:
(最后没有 '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。在 运行ing 这个脚本后,我得到了 zip 文件 first.zip,里面有两个文件:first.txt 和 first.csv.