在ConfigParser中消除等号之间的空格 - Python

时间:2015-10-30 16:02:34

标签: python templates

我从this帖子得到了一个很好的答案,其中涵盖了我想要的一切。

[Box]
box.active = false
resolution_tracker.active = true
box.api_key = 
box.api_secret = 
box.job_interval = 480
box.max_attempts = 6
box.users = 

[Google]
google.active = true
google.job_interval = 480
google.users = <useremail>
google.key_file_name = <key_file>
google.service_account_id = <account_id>

然而,仍然存在的问题是如何删除平等分配中的空格。例如:

box.active = false

必须

box.active=false

那就是它,我想删除=之间的空白区域。 .properties文件是在Python中使用ConfigParser生成的,但似乎这些空格会产生问题。当然我可以使用其他东西来删除那些空格,但使用StringIOConfigParser或任何其他Python库是否有更优雅的解决方案?

**编辑** 这个问题并不重复,因为我们正试图找到一种更简单的方法来使用API​​删除=周围的空白区域,而不是重写ConfigParser类。

1 个答案:

答案 0 :(得分:4)

ConfigParser.write()有一个标志

#!/usr/bin/env python3
import sys
from configparser import ConfigParser
from io import StringIO


CONFIG = '''
[Box]
box.active = false
resolution_tracker.active = true
box.api_key = 
box.api_secret = 
box.job_interval = 480
box.max_attempts = 6
box.users = 

[Google]
google.active = true
google.job_interval = 480
google.users = <useremail>
google.key_file_name = <key_file>
google.service_account_id = <account_id>
'''

parser = ConfigParser()
parser.readfp(StringIO(CONFIG))
parser.write(sys.stdout, space_around_delimiters=False)

输出:

[Box]
box.active=false
resolution_tracker.active=true
box.api_key=
box.api_secret=
box.job_interval=480
box.max_attempts=6
box.users=

[Google]
google.active=true
google.job_interval=480
google.users=<useremail>
google.key_file_name=<key_file>
google.service_account_id=<account_id>