我需要從不同的文本文件中提取(很多)信息。 不知有比以下內容的更短和更有效的方式:使用re.compiler提取數據的最佳方式
第一部分:(N線長)
N1 = re.compile(r'')
N2 = re.compile(r'')
.
Nn = re.compile(r'')
第二部分:(2N線長)
with open(filename) as f:
for line in f:
if N1.match(line):
var1 = N1.match(line).group(x).strip()
elif N2.match(line):
var2 = N1.match(line).group(x).strip()
elif Nn.match(line):
varn = Nn
你是否建議讓re.compile變量(第一部分)與第二部分分開?你們在這種情況下使用什麼?也許一個函數將正則表達式作爲參數?並每次調用它。
在我的情況下,N是30,這意味着我有90行用於填充字典的行數很少或根本沒有邏輯。
一般來說,如果你想'''的東西,使用*列表*。 – jonrsharpe
提取的數據將存儲在列表和字典中,但爲什麼在提取之前使用列表? –
...因爲您希望比定義具有不同名稱的'n'編譯正則表達式更短,更高效? – jonrsharpe