首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅提取基于文件名的最新文件

仅提取基于文件名的最新文件
EN

Stack Overflow用户
提问于 2019-05-03 21:23:35
回答 1查看 82关注 0票数 0

我只想从已更新的文件中解压最近的文件。下面是我的代码:

代码语言:javascript
复制
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)

解压出来的文件是:

代码语言:javascript
复制
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

但我只想要基于文件名的最后一个,而不是元数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-03 22:03:45

因此,我所做的不是在每次迭代中提取,而是将满足“if”要求的文件附加到一个列表中。然后,我提取了该列表中的最大值,这就是我要查找的文件。下面是更新后的代码:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55970744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档