簡體   English   中英

僅根據文件名提取最新文件

[英]Extract only most recent file based on filename

我想從已更新的文件中解壓縮最新文件。 這是我的代碼:


def main():

    dest_dir = 'C:/Users/PycharmProjects/kpi/flats'
    zip_file = 'Z:/OUT.zip'

    with ZipFile(zip_file) as zipObj:
        for zip_info in zipObj.infolist():
            if zip_info.filename[-1] == '/':
                continue
            if zip_info.filename.startswith('homeware/R2D2/DATA/OUT/Flat/FlatFile_r2d2_01012018'):
                print(zip_info.filename)
                zip_info.filename = os.path.basename(zip_info.filename)
                zipObj.extract(zip_info,dest_dir)

提取的文件是:

homeware/R2D2/DATA/OUT/Flat/Flat_01012018_180216.csv
homeware/R2D2/DATA/OUT/Flat/Flat_01012018_210147.csv
homeware/R2D2/DATA/OUT/Flat/Flat_01012018_230148.csv

但我只希望最后一個基於文件名而不是元數據

所以我所做的不是在每次迭代時提取,而是將滿足'if'要求的文件附加到列表中。 然后我提取了該列表的最大值,這是我正在尋找的文件。 這是更新的代碼:

def main():

    dest_dir = 'C:/Users/mbelahce040119/PycharmProjects/kpi/flats'
    zip_file = 'Z:/DATA/OUT/COMMON_2018/201810/OUT_201810.zip'

    with ZipFile(zip_file) as zipObj:
        files_sat = list()
        for zip_info in zipObj.infolist():
            if zip_info.filename[-1] == '/':
                continue
            if zip_info.filename.startswith('homeware/R2D2/DATA/OUT/Flat/FlatFile_r2d2_01012018'):
                print(zip_info.filename)
                files_sat.append(zip_info.filename)
                zip_info.filename = os.path.basename(max(files))
        zipObj.extract(max(files_sat), dest_dir)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM