2012-01-12 7 views
2

テストコード:python ConfigParserモジュールが文字列 " r n"をCRLFに変換する方法は?

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と同じ値にすることができます。

助けていただけたら幸いです!

答えて

2

複数行の設定値を書きたい場合は、次の行の先頭にスペースを挿入するだけです。たとえば、次のように

[General] 
orig_str = line1 
line2 

戻って私のOS(Linux)の中'line1\nline2'、多分異なるOSで同様'\r'を返すことがあります。それ以外の場合は、'\n''\r\n'に置き換えるのは簡単です。

私は、メッセージをエンコードするために使用しているライブラリがあれば、そのメッセージを交換する必要があります。

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 
+0

おかげで、しかし、私は必要なのは「\ rを\ n」は、この文字列は、HTTPリクエストであるからである。とにかくそれは場合でなければ、次のように、あなた自身のConfigParserを作成することができます。 – pvd

+1

@pvd本当にそれが必要な場合は、 'ConfigParser'サブクラスが目的の機能を実装した例を追加しました。 – jcollado

関連する問題