我想更新wpa_supplicant.conf文件中的记录,其中保存了其中一个连接的passoword。无论整个记录是仅位于一行还是以不同方式格式化,它都应该起作用。因此,如果“网络”是我的网络的名称,基本上我想要做的是
network={
ssid="network"
psk="password"
}
并替换
network" (...whatever...) }
与
network" psk="new_password"}
我知道正则表达式是关键,但由于我完全不熟悉,我可以用一只手。
提前致谢
答案 0 :(得分:0)
您可以简单地使用没有正则表达式的解决方案。特别是对于编程方面的新手来说,正则表达式可能真的很糟糕。
没有正则表达式的可能解决方案是:
def set_new_password(password):
with open('/etc/wpa_supplicant/wpa_supplicant.conf','r') as f:
in_file = f.readlines()
f.close()
out_file = []
for line in in_file:
if line.startswith("psk"):
line = 'psk='+'"'+password+'"'+'\n'
out_file.append(line)
with open('/etc/wpa_supplicant/wpa_supplicant.conf','w') as f:
for line in out_file:
f.write(line)
这是另一个带有正则表达式解决方案的人。它不是一个非常优雅的正则表达式,但也许有一个简单的例子,你可以遵循它的含义:
def set_new_password(password):
with open('/etc/wpa_supplicant/wpa_supplicant.conf','r') as f:
in_file = f.read()
f.close()
out_file = re.sub(r'psk=".*"','psk='+'"'+password+'"',in_file)
with open('/etc/wpa_supplicant/wpa_supplicant.conf','w') as f:
f.write(out_file)
f.close()
你应该看看readme。在那里,您可以非常轻松地查看正则表达式的想法。