python - 根据文件名仅提取最近的文件
问题描述
我只想从已更新的文件中解压缩最新的文件。这是我的代码:
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)
推荐阅读
- ipc - 无法从另一个孩子读取一个孩子写入的共享内存
- c# - appsetting.json 如何在多个项目 .net 核心中工作?
- swift - 为什么我的 Swift Process() 启动路径会吐出“启动路径不可访问”?
- sql-server - SQL Server 中的 Begin & End 是否作为事务工作
- .htaccess - htaccess 301 重定向具有多个变量的 joomla URL
- mysql - Mysql 一对多表
- amazon-s3 - Terraform:将服务器日志记录添加到 S3 存储桶
- javascript - 多个输入文本框,链接到文件描述?
- html - 在这种情况下,如何在 html/php 中将先前的选择存储在下拉菜单中
- c# - C# 集成测试错误