Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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
Python 从zip存档提取文件时出现间歇性写入错误_Python_Zipfile - Fatal编程技术网

Python 从zip存档提取文件时出现间歇性写入错误

Python 从zip存档提取文件时出现间歇性写入错误,python,zipfile,Python,Zipfile,我有一个小申请,我已经作出。它基本上是将一个zip文件从网络位置复制到运行应用程序的计算机上,将其解压缩到文件夹中,然后在桌面上创建一个快捷方式 大多数时候(我认为大约80%)它都能按预期工作。另外20%的时间堆栈跟踪它说它无法创建文件。它总是一样的(\u bz2.pyd)。如果我关闭它,然后再次运行它,它会在发生这种情况后正常工作 有人知道发生了什么事吗?下面是提取文件的代码。我甚至让脚本尝试提取文件,检查是否有效,再次尝试提取文件。这并没有解决问题: print ('uncompressin

我有一个小申请,我已经作出。它基本上是将一个zip文件从网络位置复制到运行应用程序的计算机上,将其解压缩到文件夹中,然后在桌面上创建一个快捷方式

大多数时候(我认为大约80%)它都能按预期工作。另外20%的时间堆栈跟踪它说它无法创建文件。它总是一样的(
\u bz2.pyd
)。如果我关闭它,然后再次运行它,它会在发生这种情况后正常工作

有人知道发生了什么事吗?下面是提取文件的代码。我甚至让脚本尝试提取文件,检查是否有效,再次尝试提取文件。这并没有解决问题:

print ('uncompressing databases.  This takes a few minutes')
# file_name = settings.working_folder + r'\UAT_Databases.zip'
temp_name = settings_dict['working_folder'] + settings_dict['file_name']
zip_ref = zipfile.ZipFile(temp_name, 'r')
zip_ref.extractall(settings_dict['install_folder'])
zip_ref.close()
logr.info('unzipped databases')
以下是堆栈跟踪:

回溯(最近一次呼叫最后一次):
解压\u数据库中的文件“temp\u installer.py”,第141行
extractall中第1347行的文件“zipfile.py”
文件“zipfile.py”,第1335行,摘录
文件“zipfile.py”,第1398行,在_extract_成员中
PermissionError:[Errno 13]权限被拒绝:“C:\\TempApps\\Temp\u application\\\\u bz2.pyd”
2020-03-03 11:36:25697:错误:无法解压缩数据库
回溯(最近一次呼叫最后一次):
解压\u数据库中的文件“temp\u installer.py”,第141行
extractall中第1347行的文件“zipfile.py”
文件“zipfile.py”,第1335行,摘录
文件“zipfile.py”,第1398行,在_extract_成员中
PermissionError:[Errno 13]权限被拒绝:“C:\\TempApps\\Temp\u application\\\\u bz2.pyd”

尝试从Admin CMD运行相同的脚本。这可能会解决问题。是否有可能在20%的时间内,当其他进程/应用程序失败时,该
\u bz2.pyd
文件被打开/锁定,从而导致脚本上的权限错误?是否还有其他.pyd,zip存档中的.exe或.dll文件?@Michael Butscher-正在解压缩的zip文件中同时包含.exe和.pyd文件。这有区别吗?我想到两件事:我想知道在并发访问的情况下,你是否能得到
errno 13
,IRC窗口可能是一个很好的选择,但在这方面很挑剔。另外,
.pyd
文件本质上是可执行代码,它可能是(可能与前者结合)主机上的防病毒软件吗?请尝试从Admin CMD运行相同的脚本。这可能会解决问题。是否有可能在20%的时间内,当其他进程/应用程序失败时,该
\u bz2.pyd
文件被打开/锁定,从而导致脚本上的权限错误?是否还有其他.pyd,zip存档中的.exe或.dll文件?@Michael Butscher-正在解压缩的zip文件中同时包含.exe和.pyd文件。这有区别吗?我想到两件事:我想知道在并发访问的情况下,你是否能得到
errno 13
,IRC窗口可能是一个很好的选择,但在这方面很挑剔。另外,
.pyd
文件本质上是可执行代码,它可能是(可能与前者结合使用)主机上的防病毒软件吗?