Python ConfigParser模块如何将字符串"\r\n"转换为CRLF?

2 投票
1 回答
868 浏览
提问于 2025-04-17 10:04

这是测试代码:

import ConfigParser
config = ConfigParser.ConfigParser()
config.read('test_config.ini')

orig_str = """line1\r\nline2"""
config_str = config.get('General', 'orig_str')
print orig_str == config_str

而test_config.ini文件的内容是:

[General]
orig_str = line1\r\nline2

我想要的是config_str的值和orig_str的值是一样的。

任何帮助都会很感激!

1 个回答

2

如果你想写多行的配置值,只需要在接下来的行的开头加一个空格就可以了。例如:

[General]
orig_str = line1
 line2

在我的操作系统(Linux)上,这样做会返回 'line1\nline2',不过在其他操作系统上,可能会返回 '\r'。不过没关系,你可以根据需要把 '\n' 替换成 '\r\n'

我觉得你用来编码消息的库应该会自动处理这个替换。如果没有,你可以自己创建一个 ConfigParser,方法如下:

from ConfigParser import ConfigParser

class MyConfigParser(ConfigParser):
    def get(self, section, option):
      return ConfigParser.get(self, section, option).replace('\n', '\r\n')

config = MyConfigParser()
config.read('test_config.ini')

orig_str = """line1\r\nline2"""
config_str = config.get('General', 'orig_str')
print orig_str == config_str    # Prints True

撰写回答