我有一个带有这种模式的文件:[account.invoice.set_num]job_size = 0trans_size = 100[commission.invoice_second.create_full]j_size = 0[commission.invoice_principal.finalize]j_size = 12in_directory = /to/the/directory我想将此模式转换为如下文本:ACCOUNT_INVOICE_SET_NUM_JOB_SIZE = 0ACCOUNT_INVOICE_SET_NUM_TRANS_SIZE = 100COMMISSION_INVOICE_SECOND_CREATE_FULL_J_SIZE=0COMMISSION_INVOICE_PRINCIPALE_FINALIZE_J_SIZE=12 COMMISSION_INVOICE_PRINCIPALE_FINALIZE_IN_DIRECTORY=/to/the/directory我尝试在 Bash unix 或 Python 中做到这一点。我不知道什么是最好/最简单的方法。
1 回答

饮歌长啸
TA贡献1951条经验 获得超3个赞
使用config.ConfigParser功能非常可行:
from configparser import ConfigParser
config = ConfigParser()
config.read('yourfile')
config_lines = ''
for section in config.sections():
s_key = section.replace('.', '_') # transformed section key
for k, v in config.items(section):
config_lines += f'{s_key}_{k}'.upper() + f'={v}\n'
print(config_lines)
输出:
ACCOUNT_INVOICE_SET_NUM_JOB_SIZE=0
ACCOUNT_INVOICE_SET_NUM_TRANS_SIZE=100
COMMISSION_INVOICE_SECOND_CREATE_FULL_J_SIZE=0
COMMISSION_INVOICE_PRINCIPAL_FINALIZE_J_SIZE=12
COMMISSION_INVOICE_PRINCIPAL_FINALIZE_IN_DIRECTORY=/to/the/directory
添加回答
举报
0/150
提交
取消