python編輯配置 通過python編輯配置檔案

2021-10-13 02:35:18 字數 1437 閱讀 1801

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...