从配置文件读取的'\ r \ n'不等同于python的解释或'\ r \ n'

时间:2019-01-31 18:23:51

标签: python-3.x

我正在尝试使用.json配置文件来指示应如何写入CSV。

我的json文件中的CSV字典内容如下:

"CSV": {
        "Delimiter": ",",
        "Quotechar": "\"",
        "Quoting": "csv.QUOTE_MINIMAL",
        "LineTerminator": "\\r\\n"
    },

我想在csv.Dictwriter语句中使用'\ r \ n'作为我的换行符字段:

writer = csv.DictWriter(output, fieldnames=search_results[0].keys(), delimiter=config['CSV']['Delimiter'],
                            quotechar=config['CSV']['Quotechar'], quoting=quoting, lineterminator=config['CSV']['LineTerminator'])

问题是当我拉LineTerminator字段时,它不等同于Python对'\ r \ n'的解释,并且我无法正确生成CSV:

a= config['CSV']['LineTerminator']
    print(a)
    print(repr(a))
    print(repr('\r\n'))
 if '\r\n' == a:
        print('Equivalent')
Output:
\r\n
'\\r\\n'
'\r\n'

我尝试使用replace()方法无济于事。

1 个答案:

答案 0 :(得分:2)

由于双反斜杠表示字面反斜杠,因此"\\r\\n"的字面意思是反斜杠后跟字母r,再跟一个反斜杠后跟字母n

您应该使用"\r\n"来表示JSON配置文件中的回车符和换行符:

"LineTerminator": "\r\n"