2016-07-04 19 views
0

我已经创建了这个小型的python程序来自动化一些我想要运行的进程。长话短说我使用python将一些信息和参数传递给外部程序。外部程序完成它的任务并拉紧结果。我想要做的是将“licence.txt”文件添加到已压缩的结果中。这是我有:将.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中只能有一种文件类型。我觉得我犯了一个真正的简单错误,但我找不到它......任何想法?

+0

我无法重现你的问题,也许有你的文件路径列表中的问题。 – wwii

回答

0

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

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

https://docs.python.org/3/tutorial/controlflow.html#for-statements – wwii

+0

我试过了,但是会抛出一个错误:ZipFile没有定义。我应该如何申报?使用此功能我无法在网上找到任何内容。 – Newbie

+1

'从zipfile导入ZipFile' – danidee

相关问题