使用Python编写一个简单的文件压缩工具
发布时间:2023-12-04 17:26:13
下面是一个使用Python编写的简单文件压缩工具的示例代码:
import zipfile
import os
def compress_files(output_file, *input_files):
with zipfile.ZipFile(output_file, 'w') as zipf:
for file in input_files:
if os.path.isfile(file):
zipf.write(file, os.path.basename(file))
elif os.path.isdir(file):
for root, dirs, files in os.walk(file):
for f in files:
filepath = os.path.join(root, f)
arcname = os.path.relpath(filepath, os.path.dirname(file))
zipf.write(filepath, arcname)
def main():
# 压缩单个文件
compress_files('output.zip', 'file.txt')
# 压缩多个文件和文件夹
compress_files('output.zip', 'file1.txt', 'file2.txt', 'folder')
# 压缩文件和文件夹,并排除某些文件
compress_files('output.zip', 'folder', 'file1.txt', 'file2.txt', exclude=['folder/subfolder/exclude.txt'])
if __name__ == '__main__':
main()
上面的代码使用了Python的zipfile模块来实现文件压缩功能。compress_files函数接受一个压缩文件的输出路径和变长参数input_files,可以传入一个或多个需要压缩的文件或文件夹路径。压缩时,如果传入的是文件,则直接将文件写入到压缩文件中,如果传入的是文件夹,则遍历文件夹下的所有文件,并将其加入压缩文件中。
你可以根据需要对compress_files函数进行修改,以满足更多的需要,比如加入密码、添加评论等。你也可以根据具体的使用场景,将上述代码封装成一个独立的压缩工具类。
使用例子中展示了三种情况的压缩操作。第一个例子是压缩单个文件file.txt为output.zip;第二个例子是同时压缩多个文件file1.txt、file2.txt和文件夹folder为output.zip;第三个例子在第二个例子的基础上排除了文件folder/subfolder/exclude.txt。
这个示例提供了一个简单的、可扩展的文件压缩工具的基础,你可以根据自己的需求进行修改和扩展。
