Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python3.x-尝试使用zipfile和pathlib模块打开目录时发生PermissionError_Python_Python 3.x_Path_Permissions_Zipfile - Fatal编程技术网

python3.x-尝试使用zipfile和pathlib模块打开目录时发生PermissionError

python3.x-尝试使用zipfile和pathlib模块打开目录时发生PermissionError,python,python-3.x,path,permissions,zipfile,Python,Python 3.x,Path,Permissions,Zipfile,我试图使用pathlib创建一个zip文件,但它给了我一个权限错误。看看代码: 从pathlib导入路径 从zipfile导入* 导入操作系统 从日期时间导入日期时间 time=str(datetime.now()) day=int(time.split(“”)[0]。split('-')[2]) 月份=int(时间分割(“”)[0]。分割('-')[1]) year=int(time.split(“”)[0]。split('-')[0]) hour=int(time.split(“”)[1]。

我试图使用
pathlib
创建一个zip文件,但它给了我一个权限错误。看看代码:

从pathlib导入路径
从zipfile导入*
导入操作系统
从日期时间导入日期时间
time=str(datetime.now())
day=int(time.split(“”)[0]。split('-')[2])
月份=int(时间分割(“”)[0]。分割('-')[1])
year=int(time.split(“”)[0]。split('-')[0])
hour=int(time.split(“”)[1]。split(“:”)[0])
分钟=int(time.split(“”)[1]。split(“:”)[1])
filename=f“ilhadodede{day:02d}{month:02d}{year:04d}-{hour:02d}-{minute:02d}.zip”
打印(f“{day}/{month}/{year}{hour}:{minute}”)
zipped=ZipFile(文件名为“w”,ZIP_已压缩)
打印(路径(路径(“世界”)/文件))
对于os.walk(“world”)中的根目录、目录和文件:
对于文件中的文件:
zip.write(os.path.join(根目录,文件))
对于zipped.infolist()中的f:
打印(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))
像这样的错误

PermissionError:[Errno 13]权限被拒绝

是由于缺少从该目录写入/读取
的权限而导致的

要确认这是错误的原因,您可以尝试在该目录下创建并保存一个文件,此命令
zip.write(os.path.join(root,file))
将输出到该目录。如果是这种情况,那么您可以查看如何更改正在使用的操作系统的目录权限,请参阅for
Linux


如果您使用的是
IDE
,您可以尝试在管理模式下打开该IDE,这将授予运行脚本执行
写入操作的完全权限。

我的问题是名为
会话.lock的文件。
我做了一个if语句来忽略那个文件,错误“飞走了”


这是一个来自minecraft world files的文件(该程序在我关闭服务器时自动备份一个世界),其中存储了玩家上次进入服务器时的日期时间,但没有该文件(该文件用于备份事宜,因此与之相关的任何内容现在都在我自己的程序中处理)游戏会自动创建它。

您需要
os.path.join(root,file)
因为
file
只包含文件名,可能不是正确的path@alaniwi所以它只是将“Path(f“world/{file}”)替换为“os.Path.join(root,file)”?@alaniwi同样的错误。@DyeffersonAzevedo你看过我的答案了吗?一定要让我知道你对这个问题的看法