写1个python函数: 传入一个win的path,这个path可能是file也可能是dir,将这个文件 [目录及目录里的内容] 尽可能压缩小,原file保持不动。返回压缩后的文件的path
时间: 2024-04-30 09:21:03 浏览: 78
python 压缩文件
可以使用Python的zipfile库来实现压缩文件或文件夹的功能,代码如下:
```python
import os
import zipfile
def compress_file(path):
# 获取文件名和扩展名
file_name, file_ext = os.path.splitext(path)
# 压缩后的文件名
zip_file_name = file_name + '.zip'
# 创建ZipFile对象
zip_file = zipfile.ZipFile(zip_file_name, 'w', zipfile.ZIP_DEFLATED)
if os.path.isfile(path):
# 如果是文件则直接将该文件添加到压缩包中
zip_file.write(path, os.path.basename(path))
else:
# 如果是目录,则遍历目录下的文件并递归压缩
for root, dirs, files in os.walk(path):
for file in files:
file_path = os.path.join(root, file)
zip_file.write(file_path, os.path.relpath(file_path, path))
# 关闭ZipFile对象
zip_file.close()
return zip_file_name
```
该函数接收一个表示文件或文件夹的路径的参数,根据路径的类型进行不同的操作:
- 如果是文件,则直接将该文件添加到压缩包中;
- 如果是目录,则遍历目录下的文件并递归压缩。
函数返回压缩后的文件路径。
阅读全文