zipfile.zip_deflated
时间: 2023-05-04 22:01:47 浏览: 86
Q: 'zipfile.zip_deflated' 是什么意思?
A: 'zipfile.zip_deflated' 是 ZIP 文件中的一种压缩方式,使用的是 DEFLATE 压缩算法。它是一种常见的压缩方式,可以有效地减小文件的大小,节省存储空间和数据传输带宽。
相关问题
def compress_file(file_path, zip_path): with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf: zipf.write(file_path, arcname=file_path) dch = '911C' dh = '01' file_path = os.path.join(r'D:/gangko/moxingku', dch + dh ) zip_path = os.path.join(r'D:/gangko/zip', dch + dh +'.zip') compress_file(file_path, zip_path) 这段代码是直接压缩了一个gangko/moxingku/911C01的文件,而不是将路径中911C01文件夹压缩,改如何改代码
如果你想要压缩整个文件夹而不是单个文件,可以使用递归方法来遍历文件夹中的所有文件,并将它们逐一添加到 zip 文件中。以下是修改后的代码示例:
```python
import os
import zipfile
def compress_folder(folder_path, zip_path):
with zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
arcname = os.path.relpath(file_path, folder_path)
zipf.write(file_path, arcname=arcname)
dch = '911C'
dh = '01'
folder_path = os.path.join(r'D:/gangko/moxingku', dch + dh)
zip_path = os.path.join(r'D:/gangko/zip', dch + dh + '.zip')
compress_folder(folder_path, zip_path)
```
在修改后的代码中,我们使用了 `os.walk()` 方法来遍历文件夹中的所有文件和子文件夹。然后,我们使用 `zipf.write()` 方法将每个文件添加到 zip 文件中,并使用 `os.path.relpath()` 方法获取相对路径,以保留文件夹结构。
这样,整个文件夹的内容将被逐一压缩到 zip 文件中。
希望这可以帮助到你!如果还有其他问题,请随时提问。
PermissionError Traceback (most recent call last) Cell In[1], line 58 54 print("运行结束") 57 # 保存Excel文件 ---> 58 workbook.save('2009-1.xlsx') File D:\ppy\lib\site-packages\openpyxl\workbook\workbook.py:407, in Workbook.save(self, filename) 405 if self.write_only and not self.worksheets: 406 self.create_sheet() --> 407 save_workbook(self, filename) File D:\ppy\lib\site-packages\openpyxl\writer\excel.py:291, in save_workbook(workbook, filename) 279 def save_workbook(workbook, filename): 280 """Save the given workbook on the filesystem under the name filename. 281 282 :param workbook: the workbook to save (...) 289 290 """ --> 291 archive = ZipFile(filename, 'w', ZIP_DEFLATED, allowZip64=True) 292 writer = ExcelWriter(workbook, archive) 293 writer.save() File D:\ppy\lib\zipfile.py:1249, in ZipFile.__init__(self, file, mode, compression, allowZip64, compresslevel, strict_timestamps) 1247 while True: 1248 try: -> 1249 self.fp = io.open(file, filemode) 1250 except OSError: 1251 if filemode in modeDict: PermissionError: [Errno 13] Permission denied: '2009-1.xlsx'
这个错误是因为你尝试在一个没有写入权限的位置保存Excel文件导致的。你需要将保存的文件路径更改为一个具有写入权限的位置。
例如,可以将文件保存到当前工作目录下(即运行代码的文件夹),或者将文件保存到用户文件夹下的一个子文件夹中,这些位置通常都具有写入权限。
你可以试着将保存Excel文件的代码改为以下形式:
```python
import os
from openpyxl import Workbook
# 创建一个新的Excel文件
workbook = Workbook()
# 获取当前工作目录
current_dir = os.getcwd()
# 保存Excel文件到当前工作目录下
excel_file_path = os.path.join(current_dir, '2009-1.xlsx')
workbook.save(excel_file_path)
print("运行结束")
```
这个代码会将Excel文件保存到当前工作目录下,并且使用`os.getcwd()`函数获取当前工作目录的路径。你也可以将`current_dir`更改为其他具有写入权限的文件夹路径。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)