问题描述
我刚开始使用python,但我仍然是一个新手,我想创建一个函数来捕获文件名的一部分,这些文件名与将这些文件存储在s3存储桶中的某种模式相对应。
Transfarm_DAT_005995_20190911_0300.txt Transfarm_supplierDivision_058346_20190911_0234.txt Transfarm_supplierDivision_058346_20200702_0245.txt Transfarm_supplierDivision_058346_20200703_0242.txt Transfarm_supplierDivision_058346_20200704_0241.txt
我希望脚本通过这些文件名,在文件扩展名之前获取字符串“类别,即“ Transfarm_DAT”和日期“ 20190911””。
您能向我指出可以帮助我的python模块和指南的方向吗?
解决方法
如果文件名始终像这样,请签出split
和join
函数。否则,正则表达式是另一种途径。
files_list = ['Transfarm_DAT_005995_20190911_0300.txt ','Transfarm_SupplierDivision_058346_20190911_0234.txt','Transfarm_SupplierDivision_058346_20200702_0245.txt','Transfarm_SupplierDivision_058346_20200703_0242.txt','Transfarm_SupplierDivision_058346_20200704_0241.txt']
category_list = []
date_list = []
for f in files_list:
date = f.split('.')[0].split('_',2)[2]
category = '_'.join([f.split('.')[0].split('_')[0],f.split('.')[0].split('_')[1]])
# print(category,date)
category_list.append(category)
date_list.append(date)
print(category_list,date_list)
输出列表:
['Transfarm_DAT','Transfarm_SupplierDivision','Transfarm_SupplierDivision'] ['005995_20190911_0300','058346_20190911_0234','058346_20200702_0245','058346_20200703_0242','058346_20200704_0241']