【发布时间】:2016-07-28 05:37:21
【问题描述】:
我想读取一个目录中的所有文件。目录包含以下文件:
ABC11_1.csv
ABC11_3.csv
ABC11_2.csv
ABC13_4.csv
ABC13_1.csv
ABC17_6.csv
ABC17_2.csv
ABC17_4.csv
ABC17_8.csv
当我运行我的脚本时,我想在控制台上以如下格式给出这个文件名: ABC11.
之后,我想按排序顺序读取所有只有 ABC11 扩展名的文件。即第一个 ABC11_1.csv,ABC11_2.csv,ABC11_3.csv 之类的。
如果用户只给出 ABC 应用程序必须给出错误信息。如果用户只给出 ABC1,那么它是有效的应用程序接受这个并在目录中检查扩展名为 ABC1 的文件,如果可用则按排序顺序处理文件,如果没有则错误消息。
程序代码-
from glob import glob
import os
import sys
file_pattern = ''
files_list = list()
arguments = {'ABC', 'PQR', 'XYZ'}
if len(sys.argv[1:2]) is 1:
file_pattern = str(sys.argv[1:2])
else:
print 'run as <python test.py ABC>'
sys.exit(1)
if file_pattern in arguments:
print '<Provide LineName with some Number>'
sys.exit(1)
file_pattern = file_pattern.replace('[','').replace(']','').replace('\'','')
if file_pattern.startswith('ABC',0,3):
files_list = glob(os.path.join('<directory name>', str(file_pattern)+'_*.csv'))
else:
print 'No Such File --> ' + str(file_pattern)+ '\t <Provide appropriate Name>'
sys.exit(1)
if files_list:
for a_file in sorted(files_list):
print a_file
#process file
else:
print 'No Such File --> ' + str(file_pattern)+ '\t <Provide appropriate Name>'
sys.exit(1)
我正在这样做,它对我来说很好,但这是做这些事情的其他最佳方法。请提供您的所有回复?
谢谢。
【问题讨论】:
标签: python file directory glob