<p>我尝试了不同的场景,最终得到了满足我所有条件的精确解。首先,我检查用户输入文件在指定的目录中是否可用,如果它可用,则在结尾用()all将具有相同文件的所有文件全局化,并将匹配文件附加到同一列表中。在</p>
<p>如果用户输入的If not file在指定的目录中不可用,那么我将检查带有(u)符号的文件,然后将所有文件放入列表中。最后迭代列表得到最终结果。在</p>
<p><strong>程序-</strong></p>
<pre><code>from glob import glob
import os
import sys
file_pattern = ''
files_list = list()
arguments = {'ABC', 'PQR', 'XYZ'}
#checking for user provided argument or not
if len(sys.argv[1:2]) is 1:
file_pattern = str(sys.argv[1:2])
else:
print 'run as < python test.py <LineName> >'
sys.exit(1)
#replace all unnecessary stuff with ('')
file_pattern = file_pattern.replace('[','').replace(']','').replace('\'','')
#checking for line number is provided or not
if file_pattern in arguments:
print '<Provide LineName with some Number>'
sys.exit(1)
flag = True
#list of all files containing specified directory
files = os.listdir('<directory name>')
for file_name in files:
if str(file_name) == str(file_pattern)+'.csv':
files_list = glob(os.path.join('<directory name>', str(file_pattern)+'_*.csv'))
#appending match file also to resultant list
files_list.append('<directory name>'+file_name)
flag = False
#if specified file is not present in dir check for filename with (_)
if flag:
files_list = glob(os.path.join('<directory name>', str(file_pattern)+'_*.csv'))
#checking for list contains items or not
if files_list:
for a_file in sorted(files_list):
print a_file
else:
print 'No Such File > ' + str(file_pattern)+ '\t <Provide appropriate Name1>'
sys.exit(1)
</code></pre>
<p>考虑目录包含ABC1.csv、ABC1_1.csv、ABC1_2.csv、ABC11.csv、ABC11_1.csv、ABC11_3.csv、ABC11_2.csv文件。在</p>
<p><strong>输出方案:</strong></p>
^{pr2}$