import re
pat = re.compile('enableprinter|printerlist|prnt1.port')
def jojo(mat,dic = ):
return dic[mat.group()]
with open('configfile','rb+') as f:
content = f.read()
f.seek(0,0)
f.write(pat.sub(jojo,content))
f.truncate()
之前:enableprinter=n
printerlist=prnt1, prnt2
prnt1.port=9600
prnt1.bits=8
後:y=n
prnt3==prnt1, prnt2
734=9600
prnt1.bits=8
太明確了.說出什麼是錯誤或弱點.
正規表示式的優點是它們可以很容易地調整到特定情況.
我剛剛看到:
「我想做的是為變數賦乙個新值」
你可以提前通知!
請問您之前/之後是否可以提供檔案示例.
編輯2這是更改檔案中某些變數值的**:
import re
from os import fsync
def updating(filename,dico):
re = '(('+'|'.join(dico.keys())+')\s*=)[^\r\n]*?(\r?\n|\r)'
pat = re.compile(re)
def jojo(mat,dic = dico ):
return dic[mat.group(2)].join(mat.group(1,3))
with open(filename,'rb') as f:
content = f.read()
with open(filename,'wb') as f:
f.write(pat.sub(jojo,content))
vars = ['enableprinter','printerlist','prnt1.port']
new_values = ['y','prnt3','8310']
what_to_change = dict(zip(vars,new_values))
updating('configfile_1.txt',what_to_change)
之前:enableprinter=n
printerlist=prnt1, prnt2
prnt1.port=9600
prnt1.bits=8
後:enableprinter=y
printerlist=prnt3
prnt1.port=8310
prnt1.bits=8
python編輯配置 通過python編輯配置檔案
import re pat re.compile enableprinter printerlist prnt1.port def jojo mat,dic return dic mat.group with open configfile rb as f content f.read f.seek...
通過Anaconda安裝 切換多版本python
anaconda安裝之後,會預設某個python版本為系統使用的版本,比如3.7 命令列輸入以下命令會列數當前系統有哪些版本的python,前面帶 號表示正在使用的版本 conda info envs輸入結果如下,其中base 表示安裝anaconda時的預設版本 安裝其他版本的命令為 conda ...
mac終端輸入python預設開啟python3
1.終端開啟 bash profile檔案 open bash profile 2.新增以下內容到.bash profile檔案 setting path for python 3.5 path library frameworks python.framework versions 3.5 bin...