更改txt文件中特定字符串后面的值

时间:2014-04-01 11:21:54

标签: python regex

这听起来像是一个常见问题需要解决,但我从来没有找到合适的解决方案。 我有一个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文件中找到它。

2 个答案:

答案 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']

希望这会有所帮助。