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

2021-10-16 20:18:45 字數 1427 閱讀 1334

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