相当尴尬我花了多少时间试图从按钮下载一个zipfile ....
<button type='button' id='button-download'>download zipfile</button>
$("#button-download").live("click", function() {
$.get("http://localhost/admin/zip/002140.zip"); // doesn't work?
})
Run Code Online (Sandbox Code Playgroud)
我需要一些子弹证明,这就是我在这里问的原因,谢谢.
我在尝试解压缩zip文件时遇到了这个问题.
- zipfile.is_zipfile(my_file)总是返回False,即使UNIX命令解压缩处理它也没问题.此外,在尝试时,zipfile.ZipFile(path/file_handle_to_path)我得到相同的错误
- 该file命令返回Zip archive data, at least v2.0 to extract并使用less它显示的文件:
PKZIP for iSeries by PKWARE
Length Method Size Cmpr Date Time CRC-32 Name
2113482674 Defl:S 204502989 90% 2010-11-01 08:39 2cee662e myfile.txt
2113482674 204502989 90% 1 file
任何想法如何解决这个问题?如果我可以进行python的zipfile工作会很好,因为我已经有一些单元测试,如果我将切换到运行,我将不得不放弃subprocess.call("unzip")
我在Windows 7(64位)上使用Python 2.7.当我尝试用ZipFile模块解压缩zip文件时,我收到以下错误: -
Traceback (most recent call last):
File "unzip.py", line 8, in <module>
z.extract(name)
File "C:\Python27\lib\zipfile.py", line 950, in extract
return self._extract_member(member, path, pwd)
File "C:\Python27\lib\zipfile.py", line 993, in _extract_member
source = self.open(member, pwd=pwd)
File "C:\Python27\lib\zipfile.py", line 897, in open
raise BadZipfile, "Bad magic number for file header"
zipfile.BadZipfile: Bad magic number for file header
Run Code Online (Sandbox Code Playgroud)
WinRAR可以提取我试图提取的文件.这是我用来从中提取文件的代码myzip.zip
from zipfile import ZipFile
z = ZipFile('myzip.zip') //myzip.zip contains just one file, a password protected pdf
for name in z.namelist():
z.extract(name) …Run Code Online (Sandbox Code Playgroud) 我使用的是最新版本的离子拉链版本1.9.1.8.我已经设置了离子拉链的属性 ParallelDeflateThreshold = 0.在过去的两个月里,压缩机制工作得很好.突然间,这停止了工作.压缩线程只是挂起,离子zip只是创建了tmp文件而无法创建zip文件.即使文件很小,我也可以轻松地重现这个问题.
我对这个问题的分析如下
问题在于最新版本的离子拉链,在这种情况下,离子拉链在创建zip文件时被挂起.我们注意到,使用此dll的其他几个用户也在其网站中报告了此类错误.请参考链接.这个问题将通过禁用ParallelThreshold离子zip的属性来解决,但它会延迟大型日志文件的性能,因为它可以在单线程而不是多线程模式下工作.
现在通过将ParallelDeflateThreshold属性设置为默认值来解决问题.但是我找不到这个问题的确切原因.为什么拉链失败突然?没有机器更换.
我有一个程序来压缩文件夹中的所有内容.我没有写这个代码,但我发现它在网上某处,我正在使用它.我打算压缩一个文件夹,比如说C:/ folder1/folder2/folder3 /.我想将folder3及其所有内容压缩到一个文件中说folder3.zip.使用下面的代码,一旦我压缩它,folder3.zip的内容将是folder1/folder2/folder3 /和files.我不希望整个路径被压缩,我只想让我感兴趣的子文件夹zip(在这种情况下为folder3).我尝试了一些os.chdir等,但没有运气.
def makeArchive(fileList, archive):
"""
'fileList' is a list of file names - full path each name
'archive' is the file name for the archive with a full path
"""
try:
a = zipfile.ZipFile(archive, 'w', zipfile.ZIP_DEFLATED)
for f in fileList:
print "archiving file %s" % (f)
a.write(f)
a.close()
return True
except: return False
def dirEntries(dir_name, subdir, *args):
# Creates a list of all files in the folder
'''Return a list of file names found in directory 'dir_name' …Run Code Online (Sandbox Code Playgroud) 我正在为我的Django网站上的报告应用程序工作.我想运行多个报告,并让每个报告在内存中生成一个.csv文件,可以批量下载为.zip.我想这样做而不将任何文件存储到磁盘.到目前为止,为了生成单个.csv文件,我遵循常见的操作:
mem_file = StringIO.StringIO()
writer = csv.writer(mem_file)
writer.writerow(["My content", my_value])
mem_file.seek(0)
response = HttpResponse(mem_file, content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=my_file.csv'
Run Code Online (Sandbox Code Playgroud)
这很好,但只适用于单个解压缩的.csv.例如,如果我有一个使用StringIO流创建的.csv文件列表:
firstFile = StringIO.StringIO()
# write some data to the file
secondFile = StringIO.StringIO()
# write some data to the file
thirdFile = StringIO.StringIO()
# write some data to the file
myFiles = [firstFile, secondFile, thirdFile]
Run Code Online (Sandbox Code Playgroud)
我怎么能返回包含所有对象的压缩文件,myFiles并且可以正确解压缩以显示三个.csv文件?
当我的代码使用以下代码执行此操作时出现问题:
using (ZipFile archive = ZipFile.Read(File)) //<== Crash Here!
{
foreach (ZipEntry entry in archive.Entries)
{
entry.Extract(UnZipFolder.Name.ToString(), ExtractExistingFileAction.OverwriteSilently);
}
}
Run Code Online (Sandbox Code Playgroud)
当ZipFile尝试读取我的文件时崩溃它是一个字符串并包含,sincrofit.zip然后崩溃并抛出此异常:
'System.ArgumentException'附加信息:'IBM437'不是受支持的编码名称.
我已经在谷歌硬盘上有一个(2K图像)数据集的拉链.我必须在ML训练算法中使用它.Code下面以字符串格式提取内容:
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
import io
import zipfile
# Authenticate and create the PyDrive client.
# This only needs to be done once per notebook.
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)
# Download a file based on its file ID.
#
# A file ID looks like: laggVyWshwcyP6kEI-y_W3P8D26sz
file_id = '1T80o3Jh3tHPO7hI5FBxcX-jFnxEuUE9K' #-- Updated File ID for my zip
downloaded = drive.CreateFile({'id': file_id})
#print('Downloaded …Run Code Online (Sandbox Code Playgroud) python machine-learning zipfile google-drive-api google-colaboratory
我有.zip存档,其中包含filename.xlsx,我想逐行解析Excel工作表。
在这种情况下,如何将文件名正确传递到pandas.read_excel?
我试过了:
import zipfile
import pandas
myzip=zipfile.ZipFile(filename.zip)
for fname in myzip.namelist():
with myzip.open(fname) as from_archive:
with pandas.read_excel(from_archive) as fin:
for line in fin:
....
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用,结果是:
AttributeError: __exit__
Run Code Online (Sandbox Code Playgroud) 该函数numpy.savez()允许将numpy对象存储在文件中.将同一对象存储在两个文件中会产生两个不同的文件:
import numpy as np
some_array = np.arange(42)
np.savez('/tmp/file1', some_array=some_array)
np.savez('/tmp/file2', some_array=some_array)
Run Code Online (Sandbox Code Playgroud)
这两个文件不同:
$ diff /tmp/file1.npz /tmp/file2.npz
Binary files /tmp/file1.npz and /tmp/file2.npz differ
Run Code Online (Sandbox Code Playgroud)
为什么文件不相同?是否包含一些随机行为,文件名或时间戳?这可以解决或修复吗?(这是一个错误?)
请注意,情况并非如此np.save().生成的文件np.save()对于相同的输入是相同的.所以我猜这与数据的压缩有关.
AFAICS只有两位不同:
$ xxd /tmp/file1.npz > /tmp/file1.hex
$ xxd /tmp/file2.npz > /tmp/file2.hex
$ diff -u0 /tmp/file1.hex /tmp/file2.hex
--- /tmp/file1.hex 2018-03-13 13:39:12.235897095 +0100
+++ /tmp/file2.hex 2018-03-13 13:39:08.743927081 +0100
@@ -1 +1 @@
-0000000: 504b 0304 1400 0000 0000 ce6c 6d4c 9c9d PK.........lmL..
+0000000: 504b 0304 1400 0000 0000 cf6c 6d4c 9c9d …Run Code Online (Sandbox Code Playgroud)