如何在Python中只压缩特定类型的文件?
如何在Python中只压缩特定类型的文件?
假设我在一个文件夹中有以下文件:
File1.txt File2.py File3.txt
我想创建一个ZIP压缩文件,但只包括.txt文件。我可以使用一个for循环来遍历该文件夹的文件,如下所示:
for folder, subfolder, files in os.walk(path):
此时,我不确定如何有效地筛选出不是.txt文件的内容。对于这个例子,我首先想要遍历存储文件的目录,并做如下操作:
for folder, subfolder, files in os.walk(path): for i in files: if i == 'File1.txt' OR i == 'File3.txt': myZip.write(i)
我认为这样会起作用,因为这些是文件夹中唯一的文件,但如果文件夹中有更多文件,它将无效。有没有更好的方法只将特定类型的文件写入ZIP压缩文件?
在Python中,我们可以使用os.walk()
函数来遍历指定路径下的文件和文件夹。然后,我们可以使用endswith()
函数来检查文件名是否以特定的扩展名结尾。如果文件名以.txt
结尾,我们可以使用myZip.write()
函数将文件添加到ZIP压缩文件中。
以下是解决这个问题的代码示例:
import os import zipfile def zip_files_with_extension(path, extension): with zipfile.ZipFile('files.zip', 'w') as myZip: for folder, subfolder, files in os.walk(path): for file in files: if file.endswith(extension): myZip.write(os.path.join(folder, file)) # 示例调用 zip_files_with_extension('/path/to/directory', '.txt')
这段代码将遍历指定路径下的所有文件和文件夹。如果文件名以.txt
结尾,它将被添加到名为files.zip
的ZIP压缩文件中。
这段代码解决了“如何在Python中只压缩特定类型的文件”的问题。