标签: zipfile

如何在Python中仅列出zip存档中的文件夹?

如何仅列出zip存档中的文件夹?这将列出存档中的每个folfder和文件:

import zipfile
file = zipfile.ZipFile("samples/sample.zip", "r")
for name in file.namelist():
    print name
Run Code Online (Sandbox Code Playgroud)

谢谢.

python directory zipfile

7
推荐指数
3
解决办法
6695
查看次数

使用ExpressJS发送生成的zip文件

我正在使用NodeJS服务器中的express模块​​生成一个zip文件.快递服务器正在响应许多请求,所以我知道这是正确设置的,但是我在生成zip文件并将其作为可下载文件发回时遇到了问题.

我不想保存文件,然后告诉Express将该文件作为下载发送,我只想将zip文件作为内存中的数据发送.这是我到目前为止所拥有的.

function buildZipFile(data, filename) {
    var zip = new require('node-zip')();
    zip.file(filename, data, { base64: false });
    return zip.generate();
}

var data = buildZipFile('hello world', 'hello.txt');
res.set('Content-Type', 'application/zip')
res.set('Content-Disposition', 'attachment; filename=file.zip');
res.set('Content-Length', data.length);
res.end(data, 'binary');
return;
Run Code Online (Sandbox Code Playgroud)

该文件将返回,但windows unzip或7zip都无法打开存档,就好像它已损坏一样.有什么建议?先感谢您.

attachment zipfile node.js express

7
推荐指数
1
解决办法
9734
查看次数

使用openpyxl模块写入电子表格会创建一个损坏的电子表格,如何修复zipfile模块?

我有一个程序使用写入电子表格openpyxl.执行程序后,单元格按预期填充,但电子表格会损坏.Excel修复电子表格,然后我可以再次查看它.

import openpyxl
from openpyxl import load_workbook
amounts, row = [1, 2, 3, 4, 5], 2
book = load_workbook("output.xlsx")
sheet = book.active

for i, value in enumerate(amounts):
    sheet.cell(column=i+1, row=row, value=value)  
print ("Sheet updating complete.")
book.save("output.xlsx")
Run Code Online (Sandbox Code Playgroud)

我尝试使用Microsoft的Open XML SDK Productivity Tool来比较好的和坏的文件,并注意到它styles.xml丢失了.我尝试使用我从另一个问题中获得的以下源代码复制它,但它并没有为我解决问题.

import zipfile
with zipfile.ZipFile('outputcopy.xlsx', 'r') as zgood:
    styles_xml = zgood.read('xl/styles.xml')
with zipfile.ZipFile('output.xlsx', 'a') as zbad:
    zbad.writestr('xl/styles.xml', styles_xml)
Run Code Online (Sandbox Code Playgroud)

我可以从Excel生成的修复日志中确认,问题出在哪里xl/styles.xml.我需要将这个xml文件从好副本复制到坏副本.

如何xl/styles.xml复制文件以便程序可以在不损坏的情况下运行output.xlsx

我已经再次尝试解决这个问题.在styles.xml无法从不同的Excel文件中复制的概率; 我styles.xml从前开output.xlsxbook.save("output.xlsx").保存之后,我会styles.xml …

python excel zipfile python-3.x openpyxl

7
推荐指数
1
解决办法
1503
查看次数

SharpZipLib:1不是受支持的代码页

我使用SharpZipLib压缩文件,用户收到此错误:

1不是受支持的代码页

我在这里发现问题出在区域设置中,解决方案就在

"替换从Thread的OEMCodePage获取代码页的代码行,而不是硬编码合适的值."

但我没有找到任何代码示例来解决这个问题.

.net c# sharpziplib zipfile

7
推荐指数
1
解决办法
3418
查看次数

从S3读取ZIP文件而不下载整个文件

我们的ZIP文件大小为5-10GB.典型的ZIP文件有5-10个内部文件,每个文件大小为1-5 GB,未压缩.

我有一套很好的Python工具来读取这些文件.基本上,我可以打开文件名,如果有ZIP文件,工具搜索ZIP文件,然后打开压缩文件.这一切都相当透明.

我想将这些文件存储在Amazon S3中作为压缩文件.我可以获取S3文件的范围,因此应该可以获取ZIP中心目录(它是文件的末尾,所以我只能读取最后的64KiB),找到我想要的组件,下载它,然后直接流到调用过程.

所以我的问题是,我如何通过标准的Python ZipFile API来做到这一点?没有记录如何用支持POSIX语义的任意对象替换文件系统传输.如果不重写模块,这可能吗?

python amazon-s3 zipfile boto boto3

7
推荐指数
2
解决办法
1469
查看次数

Python ZipFile路径分隔符

如果我使用Python ZipFile库解压Zip文件,其中文件是在Windows上创建的,但我的代码在类Unix上运行,路径分隔符是否总是Unix风格?

python zip zipfile

6
推荐指数
1
解决办法
2430
查看次数

如何创建一个空的zip文件?

我正在使用zipfile,在某些情况下,我需要为占位符目的创建一个空的zip文件.我怎样才能做到这一点?

我知道这个:

在2.7.1版中更改:如果文件是使用模式"a"或"w"创建的,然后在不向归档添加任何文件的情况下关闭,则将为文件写入空归档的相应ZIP结构.

但我的服务器使用较低版本2.6.

python zipfile

6
推荐指数
2
解决办法
3765
查看次数

用Python解压缩缓冲区?

我有一个从库调用读取的字节缓冲区,我想解压缩单个文本文件的内容.

我试过了zlib,但是我收到了这个错误:

>>> import zlib
>>> zlib.decompress(buffer)
error: Error -3 while decompressing data: incorrect header check
Run Code Online (Sandbox Code Playgroud)

ZipFile它有效,但我必须使用临时文件:

import zipfile
f = open('foo.zip', 'wb')
f.write(buffer)
f.close()
z = ZipFile('foo.zip')
z.extractall()
z.close()
with open('foo.txt', 'r') as f:
    uncompressed_buffer = f.read()
Run Code Online (Sandbox Code Playgroud)

是否可以使用zlib,如何避免使用临时文件?

python zip zlib unzip zipfile

6
推荐指数
1
解决办法
4733
查看次数

Java NIO ZipFileSystem:创建文件系统时“找不到zip END标头”

我在这里问这个是因为谷歌搜索这个错误只会给我写一个 zip 文件的命中率,而我只是试图阅读它。
我有一个单元测试,我正在尝试测试以下生产代码:

Map<String, String> zipProps = new HashMap<>();
URI zipUri = URI.create("jar:file:" + itemZipPath.toString());
try (FileSystem zipfiles = FileSystems.newFileSystem(zipUri, zipProps)) {
   // do stuff...
} catch (IOException e) {
   // log an error
}
Run Code Online (Sandbox Code Playgroud)

但是,这在包含 try 的行上失败:

java.util.zip.ZipError: zip END header not found
at com.sun.nio.zipfs.ZipFileSystem.zerror(ZipFileSystem.java:1605)
at com.sun.nio.zipfs.ZipFileSystem.findEND(ZipFileSystem.java:1021)
at com.sun.nio.zipfs.ZipFileSystem.initCEN(ZipFileSystem.java:1030)
at com.sun.nio.zipfs.ZipFileSystem.<init>(ZipFileSystem.java:130)
at com.sun.nio.zipfs.ZipFileSystemProvider.newFileSystem(ZipFileSystemProvider.java:117)
at java.nio.file.FileSystems.newFileSystem(FileSystems.java:326)
at java.nio.file.FileSystems.newFileSystem(FileSystems.java:276)
at com.company.PageCommandHandler$ProvisioningSteps.getItemModel(PageCommandHandler.java:105)
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用 OSX 的 zip 实用程序创建 zipfile 并使用jar cvf但都失败了(但是输出file <filename>略有不同)。我能找到的有关此错误的所有信息都与使用 Java NIO 创建 zipfile 相关,但正如您所看到的,我只是在执行读取操作(目前验证 ZIP …

java zip nio zipfile

6
推荐指数
2
解决办法
3万
查看次数

如何使用Compress-Archive压缩/存档隐藏文件?

使用Compress-Archive压缩文件夹时,它会跳过所有隐藏文件.

"文档"页面告诉我们此cmdlet 在后台使用Microsoft .NET Framework API System.IO.Compression.ZipArchive.

有没有办法强迫它存档隐藏文件?我无法在任何地方找到此问题.我试过-Force它,没有帮助.

我目前的解决方法是Set-FileAttribute在压缩之前使用删除隐藏属性.

compression powershell zip zipfile hidden-files

6
推荐指数
2
解决办法
734
查看次数