我有一個文本檔案,其中存在這一行。
NAME = DE: NAME_DE |EN: NAME EN (EXAMPLE) |IT: NAME, IT
我想通過形成一個串列來定位三種語言的名稱。這是我的方法,但不幸的是我找不到只針對三個詞的方法:
materialfile_obj = open (material_dict["Old_plaster"], 'r',encoding = 'latin-1')
materialfile = materialfile_obj.readlines()
flag_name = 0
for i in range(len(materialfile)):
if "NAME" in materialfile[i] and "=" in materialfile[i]:
line_name = i
flag_name = 1
if flag_name == 1:
names = materialfile[line_name].split(" = ")[1].split()
if names:
for name in names:
try:
Name_groups[name].append(All)
except Exception:
Name_groups[name] = [All]
else:
try:
Name_groups["No_value"].append(All)
except Exception:
Name_groups["No_value"] = [All]
materialfile_obj.close()
通過這種方式,我得到了每個單詞的串列,但我不能只針對名稱。
uj5u.com熱心網友回復:
:使用正則運算式,您可以通過搜索和之間的子字串在一行中完成|。
import re
s = 'NAME = DE: NAME_DE |EN: NAME EN (EXAMPLE) |IT: NAME, IT'
s = '|' # add pipe to find strings between : and |
names = re.findall(':(.*?)[|]', s)
print(names)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/441606.html
