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

cyb*_*ron 5 python templates

我从这篇文章中得到了一个很好的答案,它涵盖了我想要的一切。

[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>
Run Code Online (Sandbox Code Playgroud)

然而,仍然存在的问题是如何去除相等赋值中的空格。例如:

box.active = false
Run Code Online (Sandbox Code Playgroud)

必须是

box.active=false
Run Code Online (Sandbox Code Playgroud)

就是这样,我想删除=. 该.properties文件是用ConfigParserPython生成的,但似乎这些空格正在产生问题。当然,我可以使用其他东西来删除那些空格,但是有没有更优雅的解决方案使用StringIOConfigParser或任何其他Python库?

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

dec*_*uto 5

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)
Run Code Online (Sandbox Code Playgroud)

输出:

[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>
Run Code Online (Sandbox Code Playgroud)

  • @我已经用 `pip` 安装了 `configparser`,这解决了问题。 (2认同)