我正在写一些使用正则表达式将输出匹配到给定扩展名的语句。我的For循环似乎工作正常,我为每个文件都返回了一个答案,如果我取出一个或加一个,则得到了回报。 不过似乎发生的是,我的第一个文件被拾取,成功匹配并给出了正确的输出。循环然后获取下一个文件,对照第一条语句进行检查,然后跳过两个ELIF,并根据我的ELSE给出并输出。谁能指出原因,或者如果我错了,实际上是怎么回事?
def extmatch():
global dircontents
for file in dircontents:
dircontents = re.search(".+\sbreakout.*\.ttx", file)
if dircontents:
print('File is for TIA')
elif dircontents:
dircontents = re.search('\w+\.csv+$', file)
if dircontents:
print('File is for NMFTA')
elif dircontents:
dircontents = re.search('\w+.\.txt+$', file)
if dircontents:
print('File is for NMFTA')
else:
print('File type not recognized.')
['061419license breakout_ibc_v3_0116.ttx', '2019-06-17_7-49-21.jpg', 'SampleCSV.csv', 'script_test.txt']
<---这些是指定目录中的文件
文件用于TIA
无法识别文件类型。 <---似乎匹配第一个文件之后的每个文件的ELSE
无法识别文件类型。
无法识别文件类型。
答案 0 :(得分:0)
您可能想要这样的东西:
PURGE RECYCLEBIN;
甚至是这样:
def extmatch(dircontents):
for filename in dircontents:
if filename.lower().endswith(".ttx"):
print('File is for TIA')
elif filename.lower().endswith(".csv"):
print('File is for NMFTA')
elif filename.lower().endswith(".txt"):
print('File is for NMFTA')
else:
print('File type not recognized.')
避免全局变量。如果需要将信息传递给函数,请使用参数。