草庐IT

zip_longest

全部标签

python - 带有单个元素的 zip 列表

我有一些元素的列表,例如[1,2,3,4]和单个对象,例如'a'。我想生成一个元组列表,列表的元素位于第一个位置,单个对象位于第二个位置:[(1,'a'),(2,'a'),(3,'a'),(4,'a')].我可以像这样用zip做到这一点:defzip_with_scalar(l,o):#l-thelist;o-theobjectreturnlist(zip(l,[o]*len(l)))但是,这给了我一种创建和不必要的重复元素列表的感觉。另一种可能是defzip_with_scalar(l,o):return[(i,o)foriinl]这确实非常干净和pythonic,但在这里我是“手动

python - 创建包含多个文件的 zip 存档

我使用以下代码传递.pdf文件名及其路径来创建zip文件。forfinlstFileNames:withzipfile.ZipFile('reportDir'+str(uuid.uuid4())+'.zip','w')asmyzip:myzip.write(f)虽然它只归档一个文件。我需要将列表中的所有文件归档到一个zip文件夹中。在人们开始指出之前,是的,我已经咨询了this的答案和this链接,但那里给出的代码对我不起作用。代码运行,但我在计算机的任何地方都找不到生成的zip文件。一个简单直接的答案将不胜感激。谢谢。 最佳答案

python - zip文件并避免目录结构

我有一个压缩文件的Python脚本(new.txt):tofile="/root/files/result/"+filetargetzipfile=new.zip#ThisishowIwantmyziptolooklikezf=zipfile.ZipFile(targetzipfile,mode='w')try:#addingtoarchivezf.write(tofile)finally:zf.close()当我这样做时,我得到了zip文件。但是,当我尝试解压缩文件时,我会在与文件路径相对应的一系列目录中获取文本文件,即我在result中看到一个名为root的文件夹目录和其中的更多目

python:可执行的zip文件可以包含数据文件吗?

对python相当陌生,我最近才发现可以通过在文件顶部放置一个__main__.py文件来直接执行.zip文件。这适用于python代码,但我可以捆绑其他类型的文件并使用我的脚本访问它们吗?如果有,怎么做?我的最终目标是将一些图像文件与python代码捆绑在一个.zip文件中,然后能够在应用程序中使用这些图像,而无需将它们提取到磁盘。我还想捆绑版权声明、发行说明等,以便整个应用程序及其数据文件位于一个zip中,无需将其提取到某个地方即可执行。 最佳答案 您可以使用pkg_resources访问文件的函数:#__main__.pyim

python - 如何在不维护 Python 中的目录结构的情况下从 zip 中提取文件?

我正在尝试使用python从zip存档中提取特定文件。在这种情况下,从apk本身中提取apk的图标。我正在使用withzipfile.ZipFile('/path/to/my_file.apk')asz:#extract/res/drawable/icon.pngfromapkto/temp/...z.extract('/res/drawable/icon.png','temp/')确实有效,在我的脚本目录中它正在创建temp/res/drawable/icon.png这是temp加上与文件在apk中的相同路径。我真正想要的是以temp/icon.png结尾。有什么方法可以直接使用zi

python - 如何删除或替换 zip 存档中的文件?

我正在用Python创建一个程序,它下载一组文件并将它们放入带有zipfile模块的存档中。我已经知道如何追加到存档中,但是在某些情况下存档中的文件已经存在并且应该被覆盖。目前,如果我将一个已经存在的文件附加到存档中,我会得到一个副本。有人知道如何删除存档中的文件吗? 最佳答案 来自http://docs.python.org/2/library/zipfileZipFile.namelist()Returnalistofarchivemembersbyname.因此,在附加到文件之前获取成员列表并针对存档中的现有成员列表执行检查操

Python 相当于 zip 的字典

如果我有这两个列表:la=[1,2,3]lb=[4,5,6]我可以如下迭代它们:foriinrange(min(len(la),len(lb))):printla[i],lb[i]或者更多的pythonfora,binzip(la,lb):printa,b如果我有两本字典怎么办?da={'a':1,'b':2,'c':3}db={'a':4,'b':5,'c':6}同样,我可以手动迭代:forkeyinset(da.keys())&set(db.keys()):printkey,da[key],db[key]是否有一些内置方法可以让我进行如下迭代?forkey,value_a,valu

python - 在 Python 中创建 .zip?

我正在尝试在我的脚本中创建一个函数,它将给定源目录(src)的内容压缩到一个zip文件(dst)。例如zip('/path/to/dir','/path/to/file.zip'),其中/path/to/dir是一个目录,并且/path/to/file.zip还不存在。我不想压缩目录本身,这在我的情况下完全不同。我想压缩目录中的文件(和子目录)。这就是我正在尝试的:defzip(src,dst):zf=zipfile.ZipFile("%s.zip"%(dst),"w")fordirname,subdirs,filesinos.walk(src):zf.write(dirname)fo

python - 使用python ZipFile从zip中提取文件而不保留结构?

我尝试从一个文件夹中包含子文件夹的.zip中提取所有文件。我希望子文件夹中的所有文件仅提取到一个文件夹中,而不保留原始结构。目前,我提取所有文件,将文件移动到一个文件夹,然后删除以前的子文件夹。同名文件会被覆盖。可以在写文件之前做吗?这是一个结构示例:my_zip/file1.txtmy_zip/dir1/file2.txtmy_zip/dir1/dir2/file3.txtmy_zip/dir3/file4.txt最后我希望:my_dir/file1.txtmy_dir/file2.txtmy_dir/file3.txtmy_dir/file4.txt我可以在这段代码中添加什么?im

python - 如何使用 Python 的 zipfile 模块对 ZIP 文件中的文件设置权限(属性)?

当我从使用Python创建的ZIP文件中提取文件时zipfile模块,所有文件不可写,只读等。文件正在Linux和Python2.5.2下创建和提取。据我所知,我需要为每个文件设置ZipInfo.external_attr属性,但这似乎没有记录在我能找到的任何地方,谁能启发我? 最佳答案 这似乎行得通(感谢Evan,把它放在这里以便该行符合上下文):buffer="path/filename.zip"#zipfilenametowrite(orfile-likeobject)name="folder/data.txt"#nameof