我正在从 zip 文件中提取从 ArcGIS Online 下载的地理数据库副本。该脚本遍历 json 以驱动该过程。当它在我的 C 驱动器中时,它执行得很顺利。当我将它移动到网络驱动器时,它在第 4 次迭代中失败,给我一个与 Zipfile.extractall() 相关的“OSError: [Errno 22] Invalid argument”消息。当回溯离开我的脚本时,错误消息的后半部分位于末尾。
我在 ArcGIS Pro 控制的 conda 环境中工作,所以很少有模块是最新的。
想法?异常处理似乎正在解决眼前的问题并让脚本按预期运行,但错误只是困扰着我。
def gdb_extract(repzip,path):
with zipfile.ZipFile(repzip, 'r') as zip_ref:
fname = zip_ref.namelist()[0]
try:
zip_ref.extractall()#running into problems here
except Exception as e:
print(e.args)
fname=fname.split('/')[0]
fpath=path+'/'+fname
os.remove(repzip)
return fpath
文件“C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\zipfile.py”,第 1636 行,在 extractall self._extract_member(zipinfo, path, pwd) 文件“C:\Program Files\ArcGIS\Pro\bin\Python\envs\arcgispro-py3\lib\zipfile.py”,第 1691 行,在 _extract_member shutil.copyfileobj(source, target) 文件“C:\Program Files\ArcGIS\Pro\bin\ Python\envs\arcgispro-py3\lib\shutil.py",第 82 行,在 copyfileobj fdst.write(buf) OSError: [Errno 22] Invalid argument