python:write'反斜杠双引号'字符串到文件

时间:2017-04-07 07:30:39

标签: python string encoding

我有一个输入文件,其中包含一些包含双引号的字符串,并希望使用Python生成一个C风格的头文件。

说,

input file: Hello "Bob"
output file: Hello \"Bob\"

我无法编写代码来获取此类文件,这是我迄今为止所尝试的内容:

key = 'key'
val = 'Hello "Bob"'
buf_list = list()
...
val = val.replace('"', b'\x5c\x22')
# also tried: val = val.replace('"', r'\"')
# also tried: val = val.replace('"', '\\"')
buf_list.append((key + '="' + val + '";\n').encode('utf-8'))
...
for keyval in buf_list:
    lang_file.write(keyval)
lang_file.close()

输出文件始终包含:

Hello \\\"Bob\\\"

\n\t字符串写入输出文件时没有问题。

似乎我只能写零或两个反斜杠,有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

您需要同时使用双引号和反斜杠。以下适用于我(使用Python 2.7):

with open('temp.txt', 'r') as f:
    data = f.read()

with open('temp2.txt', 'w') as g:
    g.write(data.replace('\"', '\\\"'))

答案 1 :(得分:0)

在替换期间将字符串转换为原始字符串应该这样做。

a='Hello "Bob"'
print a.replace('"', r'\"')

以上将给你: Hello \"Bob\"