python ConfigParser模块如何将字符串“\ r \ n”转换为CRLF?

时间:2012-01-12 07:19:41

标签: python

测试代码:

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 个答案:

答案 0 :(得分: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