使用Python3.x从文本文件中查找匹配的关键字

使用Python3.x从文本文件中查找匹配的关键字,python,python-3.x,text,Python,Python 3.x,Text,我有一个以下格式的文本文件和许多这样的行 Main keyword:Mainvariable, variable (1):name_1, variable (2, 3):name_2, variable(3, 1, 2):name_3, and so on.... 我想在检查主关键字是否存在于特定行后进行检索,然后获取相应的信息 例如,如果在另一个文件的特定行中有变量(1)。我想得到的答案是name_1 输入文件 variable (1) variable (3,1,2) variable (

我有一个以下格式的文本文件和许多这样的行

Main keyword:Mainvariable, variable (1):name_1, variable (2, 3):name_2, variable(3, 1, 2):name_3, and so on....
我想在检查主关键字是否存在于特定行后进行检索,然后获取相应的信息

例如,如果在另一个文件的特定行中有变量(1)。我想得到的答案是name_1

输入文件

variable (1)
variable (3,1,2)
variable (1) as so on...
所需输出:

name_1
name_3
name_1 and so on..
迄今为止的代码:

print("\n-- ACCESSED VARIABLES --\n")
with open(commands_file, "r") as find_feature_access:
    with open("commands_analysis/feature_commands", "a") as feature_commands:
        with open("common_files/commands_library", "r") as feature_names:
            for line_1 in find_feature_access:
                current_line = line_1.strip()
                if current_line in possible_variables:
                    feature_commands.write(current_line + "\n")
                    for line_2 in feature_names:
                        if current_line in line_2:
                            line_part = line_2.strip(",")
                            if current_line in line_part:
                                required_part = line_part.strip(",")
                                print (required_part)
像这样的

sFILE = 'Main keyword:Mainvariable, variable (1):name_1, variable (2, 3):name_2, variable(3, 1, 2):name_3'

# I'm removing the beginning, but you could extract it if you want to check it
# ie "Main keyword:Mainvariable,"
sLINE = sFILE[26:]
# split the rest of the line at "variable"
sVARS = sLINE.split('variable')

for item in sVARS:
  # clean up whitespaces and commas
  item = item.strip(' ,')
  print('"',item,'"')

# prints "(1):name_1"
# prints "(2, 3):name_2"
# prints "(3, 1, 2):name_3"

现在您可以提取名称,\n或执行其他必要的操作,或在其他文件中执行相同的操作并进行交叉检查?例如,在列表(或dic,取决于您的需要)中填充名称,然后在另一个文件中提取“1”、“2”和“3”,并查找列表/字典?

您的示例输入文件与您的格式描述不匹配。在您的代码中,
可能的变量
未定义。在输入行
变量(3,1,2)
中,1和2是否可以忽略?所以只使用第一个数字?@Evert变量(3,1,2)与名称_3不完全对应。它没有什么可忽略的。它只是硬编码在一个文本文件中。您有两个输入文件吗?一个格式文件和一个实际输入文件?