我有一个输入文件,其中包含一些包含双引号的字符串,并希望使用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
字符串写入输出文件时没有问题。
似乎我只能写零或两个反斜杠,有人可以帮忙吗?
答案 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\"