如何使用Python将值附加到配置文件中的选项

798qvoo8  于 2023-05-27  发布在  Python
关注(0)|答案(4)|浏览(105)

我有如下配置文件:

[SECTION]
email = user1@exmple.com, user2@example.com

现在我想使用python在电子邮件中添加更多的电子邮件ID,如下所示:

email = user1@exmple.com, user2@example.com, user3@example.com, user4@example.com

请告诉我怎么做。

9lowa7mx

9lowa7mx1#

from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
parser.read('sample.ini')

a = parser.get('SECTION', 'email')
parser.set('SECTION', 'email', a + ', user3@example.com, user4@example.com')
with open('sample.ini', 'wb') as f:
    parser.write(f)
k4aesqcs

k4aesqcs2#

你可以尝试的一件事是:
1.在r+模式下读取文件
1.查找字符串email = .*\.com
1.将其他电子邮件地址连接到该字符串
1.将数据写回文件。

von4xj4u

von4xj4u3#

如果条目尚不存在,则此代码进行处理。

configFilePath = os.path.join(unreal.Paths.project_config_dir(), 'DefaultGame.ini')
gameConfig = SafeConfigParser()
gameConfig.read(configFilePath)
try:
    existing = gameConfig.get('/Script/Engine.AssetManagerSettings', 'MetaDataTagsForAssetRegistry')
    if PROTECTED_ASSET_METADATA_TAG_STRING not in existing:
        newEntry = existing[:-1] + ',"{}")'.format(PROTECTED_ASSET_METADATA_TAG_STRING)
    else:
        newEntry = ''
except NoOptionError:
    newEntry = '("{}")'.format(PROTECTED_ASSET_METADATA_TAG_STRING)
if newEntry:
    gameConfig.set('/Script/Engine.AssetManagerSettings', 'MetaDataTagsForAssetRegistry', newEntry)
    with open(configFilePath, 'wb') as f:
        gameConfig.write(f)
mu0hgdu0

mu0hgdu04#

只是更新@Rakesh的回答,因为我看到了一个弃用警告,比如:
弃用警告:在Python 3.2中,SafeConfigParser类已重命名为ConfigParser。这个别名将在Python 3.12中删除。请直接使用ConfigParser。parser = SafeConfigParser()
从那时起,一些Python模块发生了变化。在Python 3中,ConfigParser已重命名为configparser。请参阅Python 3 ImportError: No module named 'ConfigParser了解更多详细信息。

#!/usr/bin/env python3
import os
from configparser import ConfigParser

abs_file_name = 'sample.ini'
parser = ConfigParser()
rec = ''
# if file already exists, read it up
if os.path.isfile(abs_file_name):
    parser.read(abs_file_name)
    rec = parser.get('SECTION', 'email')

else: # write a brand new config file
    parser.add_section('SECTION')

# then add the new contents
parser.set('SECTION', 'email', rec+', user3@example.com, user4@example.com')

# save contents
with open(abs_file_name, 'w') as f:
        parser.write(f)

相关问题