ファイル名内部顧客の固有の名前の最新の.tarファイルのリターン一覧、としてラベル: - どのように私を行うPythonの - 私は、フォルダ「supertar」における様々なtarファイルを持っている
esarchive--Mona-AB-Test226-8037affd-06d1-4c61-a91f-816ec9cb825f-05222017-4.tar, esarchive--Jackson-HQ-112-ecb5ab6a-c199-402d-9a8a-8c54c8901d66-06092017-4.tar, esarchive--Mona-AB-Test226-8037affd-06d1-4c61-a91f-816ec9cb825f-05202017-4.tar, esarchive--Jackson-HQ-112-ecb5ab6a-c199-402d-9a8a-8c54c8901d66-06012017-4.tar, esarchive--Jonah-7fbbbc6c-8463-4ec1-9bde-3fc5429311e5-06092017-4
Mona、Jackson、Jonahなどの各顧客の最新の.tarファイル名をそれぞれのファイル名の日付値(ファイル名の末尾)に記載します。
esarchive--Mona-AB-Test226-8037affd-06d1-4c61-a91f-816ec9cb825f-05222017-4.tar, esarchive--Jackson-HQ-112-ecb5ab6a-c199-402d-9a8a-8c54c8901d66-06092017-4.tar, esarchive--Jonah-7fbbbc6c-8463-4ec1-9bde-3fc5429311e5-06092017-4
私がこれまでに以下のコードを実行している: -
import sys
import os
import tarfile,sys
import tarfile
import re
names = os.listdir('/home/neel/Desktop/supertar')
def parse_date(name, offset=-10):
try:
date_str = name[offset:offset+8]
return int(date_str[-4:] + date_str[:2] + date_str[2:4])
except (IndexError, TypeError, ValueError): # invalid file name
return -1
sorted_list = [x[1] for x in sorted(((parse_date(l, -14), l) for l in names), reverse=True) if x[0] != -1]
print "The File Being Untarred is:", sorted_list[0]
tar = tarfile.open("/home/neel/Desktop/supertar/"+sorted_list[0])
tar.extractall(path="/home/neel/Documents/tar-dump-es") # untar file here
tar.close()
a=re.match("esarchive--(\w+)-(\w+)-(\w+)", sorted_list[0]).group(1)
b=re.match("esarchive--(\w+)-(\w+)-(\w+)", sorted_list[0]).group(2)
c=re.match("esarchive--(\w+)-(\w+)-(\w+)", sorted_list[0]).group(3)
s = a+'-'+b+'-'+C# s=Mona-AB-Test226,Jackson-HQ-112 etc.
print 'Logging Latest Customer Log For:',s
最新の日付を持つ一人の顧客のためにのみ最新の.tar sorted_list変数にこのコードが戻ります。 Mona-AB-Test226などのような多くの顧客名を持っていますので、どのようにすればこのディレクトリを一意の顧客名(最新のもの)ごとに最新の.tarファイルにして、上記のコードの形式で私のダンプのフォルダに。