python: zipfile.ZipFile 没有那个文件或目录
python: zipfile.ZipFile No such file or directory
有文件夹路径:
P:\2018\Archive\
我想以编程方式创建许多 zip 文件,但我从测试开始。我将把这个测试 zip 文件命名为 "CO_007_II.zip" 并尝试在上面的位置创建:
import zipfile as zp
with zp.ZipFile("P:\2018\Archive\CO_007_II.zip",'w') as myzip:
myzip.write(r"P:18\CO_007_II")
但是我得到错误!
...
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\ArcGIS10.2\lib\zipfile.py", line 752, in __init__
self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: 'P:\2018\Archive\CO_007_II.zip'
这不是创建新压缩文件的方法吗?我知道文件不存在。就是为什么我用的是'w'模式,不是吗?
这是文档:
https://docs.python.org/3/library/zipfile.html
它说:
'w' 截断并 写入新文件
文档页面上的示例:
with ZipFile('spam.zip', 'w') as myzip:
myzip.write('eggs.txt')
两天前代码可以创建新的 zip 文件,但没有添加文件夹。今天什么都没用!为什么不?所有路径均有效。如何使用 python 创建新的 zip 文件并向其添加文件夹?
唯一可以重现的方法是在一个尚不存在的目录中创建一个 zip 文件。唯一可以确定的方法(您不能信任文件管理器;唯一的验证方法是从程序本身内部进行检查)是将新 zip 文件的所需路径分配给变量(例如路径),然后调用 isdir(dirname(path))
。例如:
from os.path import isdir
from os.path import dirname
target = "P:\2018\Archive\CO_007_II.zip"
if not isdir(dirname(target)):
print('cannot create zipfile because target does not exists')
else:
# create the zipfile
我也遇到了类似的问题,来这里找答案。由于这是最热门的,我将添加我发现的内容。
@metatoaster 提供的答案对我不起作用,在单步执行代码时我发现路径返回 true 到 isdir。
在我的例子中,路径长度超过了 Windows 最大路径长度(260 个字符),这导致它失败,尽管文件夹路径有效。
希望对其他人有所帮助!
我遇到了同样的问题。 这条路很长。我通过在路径
的开头添加这个 //?/C
来解决
path = r"//?/C:\Users\Camilo\Proyectos"
有文件夹路径:
P:\2018\Archive\
我想以编程方式创建许多 zip 文件,但我从测试开始。我将把这个测试 zip 文件命名为 "CO_007_II.zip" 并尝试在上面的位置创建:
import zipfile as zp
with zp.ZipFile("P:\2018\Archive\CO_007_II.zip",'w') as myzip:
myzip.write(r"P:18\CO_007_II")
但是我得到错误!
...
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\ArcGIS10.2\lib\zipfile.py", line 752, in __init__
self.fp = open(file, modeDict[mode])
IOError: [Errno 2] No such file or directory: 'P:\2018\Archive\CO_007_II.zip'
这不是创建新压缩文件的方法吗?我知道文件不存在。就是为什么我用的是'w'模式,不是吗?
这是文档:
https://docs.python.org/3/library/zipfile.html
它说:
'w' 截断并 写入新文件
文档页面上的示例:
with ZipFile('spam.zip', 'w') as myzip:
myzip.write('eggs.txt')
两天前代码可以创建新的 zip 文件,但没有添加文件夹。今天什么都没用!为什么不?所有路径均有效。如何使用 python 创建新的 zip 文件并向其添加文件夹?
唯一可以重现的方法是在一个尚不存在的目录中创建一个 zip 文件。唯一可以确定的方法(您不能信任文件管理器;唯一的验证方法是从程序本身内部进行检查)是将新 zip 文件的所需路径分配给变量(例如路径),然后调用 isdir(dirname(path))
。例如:
from os.path import isdir
from os.path import dirname
target = "P:\2018\Archive\CO_007_II.zip"
if not isdir(dirname(target)):
print('cannot create zipfile because target does not exists')
else:
# create the zipfile
我也遇到了类似的问题,来这里找答案。由于这是最热门的,我将添加我发现的内容。
@metatoaster 提供的答案对我不起作用,在单步执行代码时我发现路径返回 true 到 isdir。
在我的例子中,路径长度超过了 Windows 最大路径长度(260 个字符),这导致它失败,尽管文件夹路径有效。
希望对其他人有所帮助!
我遇到了同样的问题。 这条路很长。我通过在路径
的开头添加这个//?/C
来解决
path = r"//?/C:\Users\Camilo\Proyectos"