我做了一个小帮手功能:
import zipfile
def main(archive_list=[],zfilename='default.zip'):
print zfilename
zout = zipfile.ZipFile(zfilename, "w")
for fname in archive_list:
print "writing: ", fname
zout.write(fname)
zout.close()
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
问题是我的所有文件都没有被压缩!这些文件的大小相同,实际上只是扩展名被更改为".zip"(在本例中为".xls").
我在winXP sp2上运行python 2.5.
我有一个拉链文件(new.txt)的Python脚本.
tofile = "/root/files/result/"+file
targetzipfile = new.zip # This is how I want my zip to look like
zf = zipfile.ZipFile(targetzipfile, mode='w')
try:
#adding to archive
zf.write(tofile)
finally:
zf.close()
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到了zip文件.但是当我尝试解压缩文件时,我得到的文件文件位于与文件路径对应的一系列目录中,即我看到目录root中有一个文件夹result,里面有更多目录,即我有
/root/files/result/new.zip
当我解压缩时,new.zip我有一个看起来像的目录结构
/root/files/result/root/files/result/new.txt.
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以拉链,这样当我解压缩时我才会得到new.txt.
换句话说,我有/root/files/result/new.zip,当我解压缩时new.zip,它应该看起来像
/root/files/results/new.txt
Run Code Online (Sandbox Code Playgroud)