2016-07-04 4 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 

これが実行され、それがZIPファイルに.TXTを挿入し、それはまた、各zip形式のディレクトリにすべての他の個別の.zipファイルをコピーしている:これは私が持っているものです。だから私は各ディレクトリに圧縮された9つの別々の圧縮ファイルで終わる。それぞれの.zipには1つのファイルタイプしかなければなりません。私は本当に簡単な間違いをしたように感じるが、私はそれを見つけることができない...任意のアイデア?あなたはそれを行うが、これをしようとするだろう、なぜ私は表示されません

+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

'from zipfile import ZipFile' – danidee

関連する問題