gpt4 book ai didi

Python - 在正则表达式中使用变量

转载 作者:行者123 更新时间:2023-11-28 17:38:53 29 4
gpt4 key购买 nike

当我运行下面的代码时,我没有得到预期的输出。请纠正我..

import socket
import re
NodeName=socket.gethostname()
change_hostname_list=['/etc/hosts1','/etc/sysconfig/network1']
for file in change_hostname_list:
infile=open(file,'r').read()
print NodeName
print file
if re.search('NodeName',file):
print "DOOO"

我需要输出“DOOO”

我得到下面的,

root@test06> python test.py
test06
/etc/hosts1
test06
/etc/sysconfig/network1
root@test06>

最佳答案

替换这个:

if re.search('NodeName',file):

到:

if re.search(NodeName,infile):

变量不需要引号,文件变量是列表中的文件名,变量文件是文件的内容。

这是演示:

>>> import socket
>>> import re
>>> f = open('/etc/hosts')
>>> host_name = socket.gethostname()
>>> host_name
'hackaholic'
>>> for x in f:
... print(x)
... if re.search(host_name,x):
... print("found")
...
127.0.0.1 localhost

127.0.0.1 hackaholic

found # it founds the host name in file
# The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

关于Python - 在正则表达式中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27380017/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com