【发布时间】:2020-10-25 03:05:24
【问题描述】:
我正在尝试使用 pathlib 创建一个 zip 文件,但它给了我一个权限错误。看代码:
from pathlib import Path
from zipfile import *
import os
from datetime import datetime
time = str(datetime.now())
day = int(time.split(' ')[0].split('-')[2])
month = int(time.split(' ')[0].split('-')[1])
year = int(time.split(' ')[0].split('-')[0])
hour = int(time.split(' ')[1].split(':')[0])
minute = int(time.split(' ')[1].split(':')[1])
filename = f"ilhadodede{day:02d}{month:02d}{year:04d}-{hour:02d}-{minute:02d}.zip"
print(f"{day}/{month}/{year} {hour}:{minute}")
zipped = ZipFile(filename, "w", ZIP_DEFLATED)
print(Path(Path("world") / file))
for root, dirs, files in os.walk("world"):
for file in files:
zipped.write(os.path.join(root, file))
for f in zipped.infolist():
print(f.filename)
这是错误:
Traceback (most recent call last):
File "C:/Users/dyeff/Documents/Server Ilha do Dedé/universal_backup.py", line 20, in <module>
zipped.write(os.path.join(root, file))
File "C:\Users\dyeff\AppData\Local\Programs\Python\Python38\lib\zipfile.py", line 1776, in write
shutil.copyfileobj(src, dest, 1024*8)
File "C:\Users\dyeff\AppData\Local\Programs\Python\Python38\lib\shutil.py", line 202, in copyfileobj
buf = fsrc_read(length)
PermissionError: [Errno 13] Permission denied
这是引发错误的行:
zipped.write(os.path.join(root, file))
【问题讨论】:
-
你需要
os.path.join(root, file)因为file只包含文件名,可能不是正确的路径 -
@alaniwi 所以只是用 "os.path.join(root, file)" 替换 "Path(f"world/{file}")"?
-
@alaniwi 同样的错误。
-
@DyeffersonAzevedo 你看过我的回答了吗?请让我知道您在哪里遇到此问题
标签: python python-3.x path permissions zipfile