繁体   English   中英

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:\2018\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 文件并向其中添加文件夹?

我遇到过同样的问题。 这是一条漫长的道路 我通过在路径的开头添加这个//?/C来解决

path = r"//?/C:\Users\Camilo\Proyectos"

可以复制的唯一方法是在尚不存在的目录中创建一个 zipfile。 唯一确定的方法(您不能信任文件管理器;唯一的验证方法是从程序本身内部检查)是将新 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 提供的答案对我不起作用,在单步执行代码时,我发现路径对 isdir 返回 true。

就我而言,路径长度超过了 Windows 最大路径长度(260 个字符),这导致它失败,尽管文件夹路径有效。

希望能帮助其他人!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM