我通读了zipfile模块文档,但无法理解如何解压缩文件,只知道如何压缩文件.如何将zip文件的所有内容解压缩到同一目录中?
我查看了JDK和Apache压缩库附带的默认Zip库,我对它们不满意有三个原因:
它们很臃肿,API设计不好.我必须写50行锅炉板字节数组输出,zip输入,文件输出流和关闭相关流并捕获异常并自行移动字节缓冲区?为什么我不能有一个简单的API,它看起来像这样Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null)和Zipper.zip(File targetDirectory, String password = null)刚刚工作的?
它似乎压缩解压缩破坏文件元数据和密码处理被打破.
此外,与我使用UNIX获得的命令行zip工具相比,我尝试的所有库都慢2-3倍?
对我来说(2)和(3)是次要的,但我真的想要一个带有单线界面的良好测试库.
我试图以编程方式解压缩压缩文件.
我尝试System.IO.Compression.GZipStream在.NET中使用该类,但是当我的应用程序运行时(实际上是一个单元测试),我得到了这个异常:
System.IO.InvalidDataException:GZip标头中的幻数不正确.确保您传入GZip流..
我现在意识到.zip文件与.gz文件不同,这与文件GZip不一样Zip.
但是,由于我能够通过手动双击压缩文件然后单击"提取所有文件"按钮来提取文件,我认为应该有一种在代码中执行此操作的方法.
因此,我尝试使用Process.Start()压缩文件的路径作为输入.这会导致我的应用程序打开一个窗口,显示压缩文件中的内容.这一切都很好,但应用程序将安装在没有任何一个的服务器上单击"提取所有文件"按钮.
那么,如何让我的应用程序解压缩压缩文件中的文件?
或者还有另一种方法吗?我更喜欢在代码中执行此操作,而无需下载任何第三方库或应用程序; 安全部门对此并不太看中......
我想解压缩一个文件,这很好
system('unzip File.zip');
Run Code Online (Sandbox Code Playgroud)
但我需要通过URL传递文件名,并且无法使其工作,这就是我所拥有的.
$master = $_GET["master"];
system('unzip $master.zip');
Run Code Online (Sandbox Code Playgroud)
我错过了什么?我知道它必须是一个小而愚蠢的东西,我在俯视.
谢谢,
我有一个ZIP文件目录(在Windows机器上创建).我可以手动解压缩它们unzip filename,但是如何通过shell解压缩当前文件夹中的所有ZIP文件?
使用Ubuntu Linux服务器.
我需要一个小代码片段,它从给定的.zip文件中解压缩一些文件,并根据它们在压缩文件中的格式提供单独的文件.请发布您的知识并帮助我.
我有一个Jar文件,其中包含其他嵌套的Jars.当我JarFile()在这个文件上调用新的构造函数时,我得到一个异常,它说:
java.util.zip.ZipException:打开zip文件时出错
当我手动解压缩此Jar文件的内容并再次压缩它时,它工作正常.
我只在WebSphere 6.1.0.7及更高版本上看到此异常.同样的事情在tomcat和WebLogic上运行良好.
当我使用JarInputStream而不是JarFile时,我能够读取Jar文件的内容,没有任何异常.
我想使用Web浏览器在客户端显示OpenOffice文件,.odt和.odp.
这些文件是压缩文件.使用Ajax,我可以从服务器获取这些文件,但这些是压缩文件.我必须使用JavaScript解压缩它们,我尝试过使用inflate.js,http: //www.onicos.com/staff/iz/amuse/javascript/expert/inflate.txt ,但没有成功.
我怎样才能做到这一点?
我设法让我的第一个python脚本工作,从URL下载.ZIP文件列表,然后继续提取ZIP文件并将它们写入磁盘.
我现在无法实现下一步.
我的主要目标是下载并解压缩zip文件,并通过TCP流传递内容(CSV数据).如果我能逃脱它,我宁愿不将任何zip或解压缩的文件写入磁盘.
这是我当前的脚本,但不幸的是必须将文件写入磁盘.
import urllib, urllister
import zipfile
import urllib2
import os
import time
import pickle
# check for extraction directories existence
if not os.path.isdir('downloaded'):
os.makedirs('downloaded')
if not os.path.isdir('extracted'):
os.makedirs('extracted')
# open logfile for downloaded data and save to local variable
if os.path.isfile('downloaded.pickle'):
downloadedLog = pickle.load(open('downloaded.pickle'))
else:
downloadedLog = {'key':'value'}
# remove entries older than 5 days (to maintain speed)
# path of zip files
zipFileURL = "http://www.thewebserver.com/that/contains/a/directory/of/zip/files"
# retrieve list of URLs from the webservers
usock = urllib.urlopen(zipFileURL) …Run Code Online (Sandbox Code Playgroud) 该unzip命令没有递归解压缩存档的选项.
如果我有以下目录结构和存档:
/Mother/Loving.zip /Scurvy/Sea Dogs.zip /Scurvy/Cures/Limes.zip
我想将所有档案解压缩到与每个档案同名的目录中:
/Mother/Loving/1.txt /Mother/Loving.zip /Scurvy/Sea Dogs/2.txt /Scurvy/Sea Dogs.zip /Scurvy/Cures/Limes/3.txt /Scurvy/Cures/Limes.zip
我会发出什么命令或命令?
重要的是,这不会阻塞其中包含空格的文件名.