瞄准由竖线分隔的单词 Python
Aim at words separated by a vertical line Python
我有一个包含这一行的文本文件。
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()
通过这种方式,我得到了每个出现的单词的列表,但我不能只定位名称。
使用正则表达式,您可以在一行中搜索 :
和 |
之间的子字符串。
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)
我有一个包含这一行的文本文件。
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()
通过这种方式,我得到了每个出现的单词的列表,但我不能只定位名称。
使用正则表达式,您可以在一行中搜索 :
和 |
之间的子字符串。
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)