用python替换格式化文件中的值

2024-10-17 00:27:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串,见附件这样,我想修改它使用一个函数

指定要设置的节名称参数名称和值

另外,如果我想修改同一节的几个参数,我怎么能有位置 在文件中,以避免扫描同一节的x时间:

&NAM_WRITE_COVER_TEX CLANG='FR'
/
&NAM_FRAC LECOCLIMAP = T
/
&NAM_PGD_GRID PGRID = 'CONF PROJ '
/
&NAM_CONF_PROJ_GRID 
XLATCEN=43.,
XLONCEN=0.
NIMAX=12, 
NJMAX=8, 
XDX=60000., 
XDY=60000. /
&NAM_CONF_PROJ 
XLAT0=43., XLON0=0., XRPK=1.0, XBETA=0. /
/
&NAM_PGD_SCHEMES CNATURE = 'ISBA' , 
CSEA = 'SEAFLX' , 
CTOWN = 'TEB' , 
CWATER = 'WATFLX' ,
LGARDEN = F
/

Tags: 文件函数字符串名称附件参数conf时间
1条回答
网友
1楼 · 发布于 2024-10-17 00:27:00

我可以建议使用python正则表达式。http://docs.python.org/2/library/re.html。正则表达式将只使用一次传递。你知道吗

def replace_value(matchobj):
    new_repl_dict = {'XLATCEN': 54, 'XDX': 7000, 'CTOWN': "'NEW_VAL'"}
    if matchobj.group(1) in new_repl_dict: 
        return matchobj.group(1) + matchobj.group(2) + new_repl_dict[matchobj.group(1)]

file = "&NAM_WRITE_COVER_TEX CLANG='FR'\n..."
re.sub('(XLATCEN|XDX|CTOWN)(\s*=\s*)([^\n]*)', replace_value, file)

相关问题 更多 >