2015-04-01 57 views
-2

我有一個文件,其中一些被命名爲'network.log',而另外一些被命名爲network-wTHz.log。連字符後的最後四個字符不斷變化。我可以用什麼通配符來匹配這兩個文件?我正在使用以下if語句:在python上匹配一個文件名

if current_file == 'network.log' or current_file == 'network-*.log': 
    curr_file_path = dir_path + str('/') + str(current_file) 

上面的代碼工作正常,但它只查找network.log。它沒有找到具有模式network-xxxx.log的任何文件。

+0

如果你提交的代碼塊是一個循環遍歷所有文件名中的文件列表,你可能想嘗試遍歷'glob.glob( 'network * .log')'而不是 – wim 2015-04-01 05:20:36

回答

1
if current_file.startswith('network') and current_file.endswith('.log') 
+0

謝謝。有用。從哪個模塊開始和結束? – 2015-04-01 05:59:44

+0

'startswith'和'endswith'都是'str' API(https://docs.python.org/2/library/stdtypes.html) – 2015-04-01 14:24:06

0

使用正則表達式。

import re 
if re.match("^network(-.*).log$", current_file): 
    .... 
+0

的一部分。謝謝 – 2015-04-01 06:00:15

0

使用glob,它是專爲這個東西:

import glob 

for file_with_path in glob.iglob('/path/to/directory/network*.log'): 
    print(file_with_path) 
0

不要在Python的方式。 glob的使用

import glob 
glob.glob('network*.log') 

上面的代碼返回匹配模式

相關問題