Python:将原始字符串写入fi

2024-05-14 16:35:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python脚本生成C代码,而不需要转义。例如,我尝试过:

myFile.write(someString + r'\r\n\')

希望一个r前缀可以使事情正常进行。不过,我还是有个错误:

myFile.write(someString + ur'\r\n\')
                                   ^
SyntaxError: EOL while scanning string literal

如何用Python将原始字符串写入文件?


Tags: 字符串代码脚本string错误myfile事情write
3条回答

可以通过format方法将原始字符串插入到字符串中。这确保了 以正确的转义插入原始字符串。

示例:

mystring = "some string content {0}"
# insert raw string 
mystring = mystring.format(r"\r\n\\")

myfile = open("test.txt", "w")
myfile.write(mystring)
myfile.close()

你需要转义最后一个\,这样它就不会转义字符串的结尾,但是如果你将它作为原始字符串的一部分,它就不能得到你想要的:

>>> r'\r\n\\'
'\\r\\n\\\\'

但是,Python的字符串文字连接允许您混合原始字符串和普通字符串:

>>> r'\r\n' '\\'
'\\r\\n\\'

Python生刺can't end with a backslash

不过,也有解决办法。

您只需在字符串末尾添加空白:

>>> with open("c:\\tmp\\test.txt", "w") as myFile:
...   myFile.write(someString + r'\r\n\ ')

你不必为此烦恼,所以这可能是个解决办法。

假设someStringHallo

这将把Hallo\r\n\_写入文件,其中_是一个空格。

如果您不喜欢额外的空间,可以这样删除:

>>> with open("c:\\tmp\\test.txt", "w") as myFile:
...   myFile.write(someString + r'\r\n\ '[:-1])

这将把Hallo\r\n\写入文件,不需要额外的空白,也不需要转义反斜杠。

相关问题 更多 >

    热门问题