这听起来像是一个常见问题需要解决,但我从来没有找到合适的解决方案。 我有一个txt文件,如下所示:
variable_name1 = '1'
variable_name2 = '0'
等
因此我想编写一个Python脚本,它会在txt文件中找到一条与variable_name1
(函数的输入)相对应的行,并将变量设置为x
(这也是一个输入) )。
到目前为止,我已经尝试过:
line = "Cats = '2'"
matchObj = re.match( r'Cats = (.*)', line)
print("matchObj.group(1) : ", matchObj.group(1))
k=(matchObj.group(1))
print(k)
但是我想要 Cats 作为输入。我希望它从一个包含多行的txt文件中找到它。
答案 0 :(得分:1)
您可以使用列表格式完成此操作:
>>> word = 'This'
>>> print('{} is string formatting'.format(word))
This is string formatting
line = "Cats = '2'"
word = str(input('Enter keyword: '))
matched = re.match('{} = (.*)'.format(word), line).group(0)
print(matched)
>>> python script.py
Enter keyword: Cats
Cats = '2'
>>> word = 'Dogs'
>>> print(re.match('{} = (.*)'.format(word), "Dogs = '3'").group(0))
Dogs = '3'
答案 1 :(得分:1)
您可以将变量名称分配给变量,然后将其包含在正则表达式中,如下例所示:
line = "Cats = '2'"
variable_name = "Cats"
import re
f = re.findall(word+" = '(.*)'", line)
print f
输出:
['2']
希望这会有所帮助。