私は約3週間Pythonを学んでおり、現在、ファイル名に表示されるキーワードと日付でファイル(約10.000)をソートするための小さなスクリプトを作成しようとしています. 特定の日付より前のファイルをアーカイブに追加する必要があります。並べ替えは正常に機能しますが、アーカイブは機能しません
アーカイブを作成します-名前は問題ありません-しかし、アーカイブにはファイルへの完全なパスがあります。開くと、次のようになりますfolder1 -> folder2 -> folder3 -> files
。
アーカイブに構造全体ではなくファイルのみが含まれるように変更するにはどうすればよいですか?
以下は私のzip関数のスニペットnode
です。ファイルがソートされる前のパスでありfolder
、名前のキーワードでソートされたファイルを含むサブフォルダーであり、items
日付でソートされたファイルを含むフォルダーです。
私はPython 2.6を使用しています
def ZipFolder(node, zipdate):
xynode = node + '/xy'
yznode = node + '/yz'
for folder in [xynode,yznode]:
items = os.listdir(folder)
for item in items:
itemdate = re.findall('(?<=_)\d\d\d\d-\d\d', item)
print item
if itemdate[0] <= zipdate:
arcname = str(item) + '.zip'
x = zipfile.ZipFile(folder + '/' + arcname, mode='w', compression = zipfile.ZIP_DEFLATED)
files = os.listdir(folder + '/' + item)
for f in files:
x.write(folder + '/' + item + '/' + f)
print 'writing ' + str(folder + '/' + item + '/' + f) + ' in ' + str(item)
x.close()
shutil.rmtree(folder + '/' + item)
return
また、提案や改善を歓迎します。