2015-06-01 4 views
1

У меня есть файлы в каталоге со следующим соглашением об именах, которое прибывает ежедневно и вы хотите отфильтровать список файлов для взаимодействия данных. Я играю регулярно, и мне трудно сопоставить файл, который я хочу фильтровать.отфильтрованный список файлов в каталоге

import re 

fnames = ["JEExport_20150501-20150531_Credit-Balance-Adjustment-Applied_20150531183249.csv", 
     "JEExport_20150501-20150531_External-Credit-Balance-Payment_20150531183254.csv", 
     "JEExport_20150501-20150531_External-Payment_20150531183251.csv", 
     "JEExport_20150501-20150531_Invoice-Item_20150531183255.csv", 
     "JEExport_20150501-20150531_Invoice-Item-Adjustment_20150531183304.csv" 
     "JEExport_20150501-20150531_Invoice-Item-Adjustment-Tax_20150531183313.csv", 
     "JEExport_20150501-20150531_Taxation-Item_20150531183240.csv"] 

for element in fnames:  
    m = re.match("[A-Za-z]+\-[A-Za-z]+|-[A-Za-z]+", element)  
    if m == 'Invoice-Item-Adjustment': 
     print(element) # do something 
+0

Это не то, как регулярные выражения работают в Python. re.match() возвращает регулярное выражение MatchObject (или ничего), 'm' никогда не будет равным строке. https://docs.python.org/2/library/re.html#re.match и https://docs.python.org/2/library/re.html#re.MatchObject – TessellatingHeckler

ответ

1

Я не думаю, что вам нужно регулярное выражение. Это работает?

fnames = ["JEExport_20150501-20150531_Credit-Balance-Adjustment-Applied_20150531183249.csv", 
     "JEExport_20150501-20150531_External-Credit-Balance-Payment_20150531183254.csv", 
     "JEExport_20150501-20150531_External-Payment_20150531183251.csv", 
     "JEExport_20150501-20150531_Invoice-Item_20150531183255.csv", 
     "JEExport_20150501-20150531_Invoice-Item-Adjustment_20150531183304.csv", 
     "JEExport_20150501-20150531_Invoice-Item-Adjustment-Tax_20150531183313.csv", 
     "JEExport_20150501-20150531_Taxation-Item_20150531183240.csv"] 

for element in fnames:   
    if 'Invoice-Item-Adjustment' in element: 
     print(element) # do something 

JEExport_20150501-20150531_Invoice-Item-Adjustment_20150531183304.csv 
JEExport_20150501-20150531_Invoice-Item-Adjustment-Tax_20150531183313.csv 
+0

Нет, это не сработает другой включен. JEExport_20150501-20150531_Invoice-Item-Adjustment-Tax_20150531183313.csv –

+0

Хорошо, если вы измените его на '' Invoice-Item-Adjustment_''? – maxymoo

+0

no mate. вложенной налоговый файл. –

Смежные вопросы