将.txt添加到已压缩的文件中

时间:2016-07-04 18:19:30

标签: python zipfile

我创建了这个小python程序来自动化我想要运行的一些进程。长话短说我用python将一些信息和参数传递给外部程序。外部程序完成它的事情并且拉上结果。我要做的是添加一个" licence.txt"归档到已压缩的结果。这就是我所拥有的:

import zipfile

#List of files for the licence to be inserted into
data = [ loc + r"\FME_Data\FME_GENERIC_OUTPUT\BASE\BASE_NS_CivicAddress_File_UT83_GDB.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\BASE\BASE_NS_CivicAddress_File_UT83_MIF.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\BASE\BASE_NS_CivicAddress_File_UT83_SHP.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\BND\BND_NS_Community_Bndys_UT83_GDB.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\BND\BND_NS_Community_Bndys_UT83_MIF.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\BND\BND_NS_Community_Bndys_UT83_SHP.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\TRNS\TRNS_NSRN_Addressed_Roads_UT83_GDB.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\TRNS\TRNS_NSRN_Addressed_Roads_UT83_MIF.zip",
         loc + r"\FME_Data\FME_GENERIC_OUTPUT\TRNS\TRNS_NSRN_Addressed_Roads_UT83_SHP.zip"]


count, tot = 0,8
while count <= tot:
     z = zipfile.ZipFile(data[count] , "a")
     z.write ("Licence.txt")
     z.close()
     count = count + 1

运行并将.txt插入到zip文件中,但它也将所有其他单独的.zip文件复制到每个压缩目录中。所以我最终将9个单独的压缩文件压缩到每个目录中。每个.zip中只应该有一种文件类型。我觉得好像我犯了一个真正的简单错误,但是我无法找到它...任何想法?

1 个答案:

答案 0 :(得分:0)

我不明白为什么你会这样做但是试试这个,这有点简单:

import zipfile
for filepath in data:
   with zipfile.ZipFile(filepath, 'a') as myzip:
      myzip.write('license.txt')