江湖散人 发表于 2021-7-4 13:41:09

zip压缩后解压的问题

import zipfile
from pathlib import Path

p = Path.cwd().parent
ez = zipfile.ZipFile(p/'ttt.zip')
print(ez.namelist())
ez.extractall()
ez.close()

这个程序就是查看压缩包里的文件,以及如何解压的。
但是解压的文件在哪?我怎么找不到了。

qiuyouzhi 发表于 2021-7-4 14:25:48

在工作目录或者压缩包所在位置?

江湖散人 发表于 2021-7-4 22:34:11

qiuyouzhi 发表于 2021-7-4 14:25
在工作目录或者压缩包所在位置?

我找了,啥也没有,目录也没,压缩包所在文件夹也没有

Daniel_Zhang 发表于 2021-7-5 00:28:45

搜索一下啊,看看电脑里面这个文件在哪

或者是你的路径啥的有问题,检查一下

有时候路径有误却不会报错的{:10_272:}

阿奇_o 发表于 2021-7-5 03:35:10

# 创建zip文件(写入)
with ZipFile("myZip.zip", 'w') as zf:
   
    # 将 单个文件 压缩(写入)到zip文件对象中
    zf.write('foo.txt')
    zf.write('XXX.avi')
   
    # 将 文件夹 写入
    for dirpath, dirnames, files in os.walk(".\\A"):
      zf.write(dirpath) # 先写入(创建) 此时walk到的 文件夹
      for f in files:
            zf.write(os.path.join(dirpath, f))# 写入 此时walk到的 文件

# 压缩文件夹的另一种方法(归档)
# import shutil
# shutil.make_archive(output_filename, 'zip', dir_name)


# 读取zip文件包含哪些文件(读取)
with ZipFile("myZip.zip", 'r') as zf:
    print(zf.filelist) # 文件对象列表
    zf.printdir() # 打印文件清单


# 解压
# with ZipFile("testZip.zip", 'r') as zf:
#   zf.extractall()# 默认解压到当前工作目录

with ZipFile("myZip.zip", 'r') as zf:
    zf.extractall('.\\extra_here')# 指定解压到哪

江湖散人 发表于 2021-7-7 10:36:56

Daniel_Zhang 发表于 2021-7-5 00:28
搜索一下啊,看看电脑里面这个文件在哪

或者是你的路径啥的有问题,检查一下


我搜索了,也查到了。在python安装路径。不过还有一个就是在C盘Recent这个文件里,可是我始终是没找到这个文件夹。很简单的一个路径,可是就是找不到这个文件。

江湖散人 发表于 2021-7-7 10:37:52

阿奇_o 发表于 2021-7-5 03:35


谢谢

江湖散人 发表于 2021-7-7 10:39:33

阿奇_o 发表于 2021-7-5 03:35


就是解压这个问题,我没搞明白。默认的解压路径,当前工作目录没找到解压后的文件。

阿奇_o 发表于 2021-7-7 13:03:14

江湖散人 发表于 2021-7-7 10:39
就是解压这个问题,我没搞明白。默认的解压路径,当前工作目录没找到解压后的文件。

我几乎照着你的代码,试了两遍,
一遍在IDLE默认工作目录,一遍修改了当前工作目录后再试,结果—— 都行。

真的不知道 你是怎么个“找不到”。。{:10_284:}

Daniel_Zhang 发表于 2021-7-7 14:57:39

江湖散人 发表于 2021-7-7 10:36
我搜索了,也查到了。在python安装路径。不过还有一个就是在C盘Recent这个文件里,可是我始终是没找到这 ...

recent 应该是最近使用的意思吧

你看看最近使用,有没有这么个文件夹{:10_272:}

江湖散人 发表于 2021-7-7 15:39:50

阿奇_o 发表于 2021-7-7 13:03
我几乎照着你的代码,试了两遍,
一遍在IDLE默认工作目录,一遍修改了当前工作目录后再试,结果—— 都 ...

当前目录是指,这个压缩包所在的吗?

江湖散人 发表于 2021-7-7 15:41:04

Daniel_Zhang 发表于 2021-7-7 14:57
recent 应该是最近使用的意思吧

你看看最近使用,有没有这么个文件夹

谢谢

阿奇_o 发表于 2021-7-7 16:01:19

本帖最后由 阿奇_o 于 2021-7-7 16:03 编辑

江湖散人 发表于 2021-7-7 15:39
当前目录是指,这个压缩包所在的吗?

OMG, 是 os.getcwd() 或 Path.cwd()打印出来是什么,那就是“当前工作目录” current working directory

变更 当前工作目录是 os.chdir("path_to_your_working_Dir")

如果zip包或其他任何文件就在当前工作目录内,可直接用 其文件名作为路径,否则,要么用 相对路径,要么用 绝对路径。

另外若你extractall()后(没报任何错),若真的找不到,请检查你的zip包里有东西吗?或zip文件是否是正常的zip压缩包。。

OK,我已经想不到 造成“找不到”的 其他的可能的技术原因,你自个折腾吧。
{:10_277:}

qq1151985918 发表于 2021-7-7 16:25:47

ez.extractall()
好像是有一个path 函数
ez.extractall(path='C:\Users\Administrator\Desktop\')

江湖散人 发表于 2021-7-7 16:46:23

阿奇_o 发表于 2021-7-7 16:01
OMG, 是 os.getcwd() 或 Path.cwd()打印出来是什么,那就是“当前工作目录” current working direct ...

找到了,pycharm运行后直接给我创建了一个新文件夹,在压缩包的上一层文件,名字和压缩包所在的文件夹非常像,就相差一个字母,奇葩的操作,害得我找了很长时间。谢谢你这么耐心的解答!

江湖散人 发表于 2021-7-7 16:46:54

qq1151985918 发表于 2021-7-7 16:25
好像是有一个path 函数
ez.extractall(path='C:%users\Administrator\Desktop\')

谢谢啊

Daniel_Zhang 发表于 2021-7-7 19:03:09

江湖散人 发表于 2021-7-7 16:46
找到了,pycharm运行后直接给我创建了一个新文件夹,在压缩包的上一层文件,名字和压缩包所在的文件夹非 ...

那应该是你选择新建位置的时候,路径写错了?和系统对应位置的文件夹的名字有出入?
页: [1]
查看完整版本: zip压缩后解压的问题