如何使用 zipfile 在绝对路径上创建 zip 文件
how to create zip file on a absolute path using zipfile
我正在尝试为来自不同目录的文件创建一个 zip 文件。最后,我想将该 zip 文件保存到与 python 文件 python 不同的路径。
我有以下代码片段
def zipfile_method(file_list):
try:
zip_path = os.path.abspath('/Users/nirmalsarswat/Document/jdk.zip')
print(zip_path)
zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
for files in file_list:
path = os.path.abspath(files)
zip_file.write(path)
zip_file.close()
except Exception as e:
print("exception occured during compression %s" % e)
zipfile_method(['/Users/nirmalsarswat/Desktop/jdk-8u171-macosx-x64.dmg', '/Users/nirmalsarswat/Desktop/resume-nirmal-sarswat.pdf'])
我的 python 文件的路径是 /Users/nirmalsarswat/Desktop/app.py
.
我希望文件路径在 /Users/nirmalsarswat/Document/jdk.zip
但 zipfile 将它保存在 python 文件的同一文件夹中,就像这样 /Users/nirmalsarswat/Desktop/Users/nirmalsarswat/Document/jdk.zip
.
如何将文件保存到 /Users/nirmalsarswat/Document/jdk.zip
路径
我正在使用 MacOS,Python3.6.4.
实际上我看到的是,你做的是正确的,但是你对路径感到困惑。当您将唯一的绝对路径传递给 write
时,它将使用完整目录压缩文件,这似乎是您面临的问题。
尝试用 write
解析 basename
,它会正常工作,就像这样
from os.path import basename # add this to your imports
def zipfile_method(file_list):
try:
zip_path = os.path.abspath('/Users/nirmalsarswat/Document/jdk.zip') # no need to this one, parse string itself
print(zip_path)
zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
for files in file_list:
path = os.path.abspath(files)
zip_file.write(path, basename(path))
zip_file.close()
except Exception as e:
print("exception occured during compression %s" % e)
zipfile_method(['/Users/nirmalsarswat/Desktop/jdk-8u171-macosx-x64.dmg', '/Users/nirmalsarswat/Desktop/resume-nirmal-sarswat.pdf'])
我正在尝试为来自不同目录的文件创建一个 zip 文件。最后,我想将该 zip 文件保存到与 python 文件 python 不同的路径。 我有以下代码片段
def zipfile_method(file_list):
try:
zip_path = os.path.abspath('/Users/nirmalsarswat/Document/jdk.zip')
print(zip_path)
zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
for files in file_list:
path = os.path.abspath(files)
zip_file.write(path)
zip_file.close()
except Exception as e:
print("exception occured during compression %s" % e)
zipfile_method(['/Users/nirmalsarswat/Desktop/jdk-8u171-macosx-x64.dmg', '/Users/nirmalsarswat/Desktop/resume-nirmal-sarswat.pdf'])
我的 python 文件的路径是 /Users/nirmalsarswat/Desktop/app.py
.
我希望文件路径在 /Users/nirmalsarswat/Document/jdk.zip
但 zipfile 将它保存在 python 文件的同一文件夹中,就像这样 /Users/nirmalsarswat/Desktop/Users/nirmalsarswat/Document/jdk.zip
.
如何将文件保存到 /Users/nirmalsarswat/Document/jdk.zip
路径
我正在使用 MacOS,Python3.6.4.
实际上我看到的是,你做的是正确的,但是你对路径感到困惑。当您将唯一的绝对路径传递给 write
时,它将使用完整目录压缩文件,这似乎是您面临的问题。
尝试用 write
解析 basename
,它会正常工作,就像这样
from os.path import basename # add this to your imports
def zipfile_method(file_list):
try:
zip_path = os.path.abspath('/Users/nirmalsarswat/Document/jdk.zip') # no need to this one, parse string itself
print(zip_path)
zip_file = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
for files in file_list:
path = os.path.abspath(files)
zip_file.write(path, basename(path))
zip_file.close()
except Exception as e:
print("exception occured during compression %s" % e)
zipfile_method(['/Users/nirmalsarswat/Desktop/jdk-8u171-macosx-x64.dmg', '/Users/nirmalsarswat/Desktop/resume-nirmal-sarswat.pdf'])