如何创建 zip?
How can I create a zip?
如何添加文件和压缩文件夹?
到目前为止,我可以使用 zipfile 创建一个 zip。
How can I create a folder to add files and zip the folder?
您可以按照以下步骤做您想做的事:
要创建文件夹,请像这样使用 os.mkdir
:
import os
os.mkdir('spam') # your folder name
然后您可以向其中写入文件或使用shutil.copy
复制现有文件。
# to write files:
with open('./spam/eggs.txt', 'w') as fp: # creates a text file in spam named eggs.txt
fp.write('hello') # write hello
# to copy files
import shutil
shutil.copy('eggs.txt', './spam/eggs.txt') # copy eggs.txt from the current working dir to spam folder
然后压缩文件夹,您的想法是正确的,可以这样使用 zipfile
:
from zipfile import ZipFile, ZIP_DEFLATED
zipfp = ZipFile('spam.zip', 'w', ZIP_DEFLATED) # create a new zip file named spam.zip
for root, dirname, files in os.walk('./spam'): # walk in the spam folder
[zipfp.write(os.path.join('./spam',file)) for file in files] # write them to the zip file
zipfp.close()
一个完整的例子:
import os
from zipfile import ZipFile, ZIP_DEFLATED
os.mkdir('spam')
with open('./spam/eggs.txt', 'w') as fp:
fp.write('hello')
with ZipFile('spam.zip', 'w', ZIP_DEFLATED) as zipfp:
for root, dirname, files in os.walk('./spam'):
[zipfp.write(os.path.join('./spam',file)) for file in files]
此代码的结果是生成一个名为 spam.zip
的压缩文件夹,在 zip 文件中,有一个名为 eggs.txt
的 txt 文件,其中包含文本 'hello'
。
为 OP 澄清:
[zipfp.write(os.path.join('./spam',file)) for file in files]
相当于:
for file in files:
zipfp.write(os.path.join('./spam',file))
使用列表理解.
写起来更简单
如何添加文件和压缩文件夹?
到目前为止,我可以使用 zipfile 创建一个 zip。
How can I create a folder to add files and zip the folder?
您可以按照以下步骤做您想做的事:
要创建文件夹,请像这样使用 os.mkdir
:
import os
os.mkdir('spam') # your folder name
然后您可以向其中写入文件或使用shutil.copy
复制现有文件。
# to write files:
with open('./spam/eggs.txt', 'w') as fp: # creates a text file in spam named eggs.txt
fp.write('hello') # write hello
# to copy files
import shutil
shutil.copy('eggs.txt', './spam/eggs.txt') # copy eggs.txt from the current working dir to spam folder
然后压缩文件夹,您的想法是正确的,可以这样使用 zipfile
:
from zipfile import ZipFile, ZIP_DEFLATED
zipfp = ZipFile('spam.zip', 'w', ZIP_DEFLATED) # create a new zip file named spam.zip
for root, dirname, files in os.walk('./spam'): # walk in the spam folder
[zipfp.write(os.path.join('./spam',file)) for file in files] # write them to the zip file
zipfp.close()
一个完整的例子:
import os
from zipfile import ZipFile, ZIP_DEFLATED
os.mkdir('spam')
with open('./spam/eggs.txt', 'w') as fp:
fp.write('hello')
with ZipFile('spam.zip', 'w', ZIP_DEFLATED) as zipfp:
for root, dirname, files in os.walk('./spam'):
[zipfp.write(os.path.join('./spam',file)) for file in files]
此代码的结果是生成一个名为 spam.zip
的压缩文件夹,在 zip 文件中,有一个名为 eggs.txt
的 txt 文件,其中包含文本 'hello'
。
为 OP 澄清:
[zipfp.write(os.path.join('./spam',file)) for file in files]
相当于:
for file in files:
zipfp.write(os.path.join('./spam',file))
使用列表理解.
写起来更简单