Python - 打开文件时必须添加r

时间:2015-02-14 19:32:23

标签: python file text

我有几个.py文件,我可以在任何地方打开我的文件,除了我的test.py文件(我在那里测试脚本和函数)而不是:

file = open("C:\Users\User\Desktop\key_values.txt", "r")

我需要使用它(用r)来避免错误:

file = open(r"C:\Users\User\Desktop\key_values.txt", "r")

我收到此错误:(当我尝试在test.py脚本中打开没有r的文件时)

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

知道为什么会这样吗?

2 个答案:

答案 0 :(得分:4)

Backslash is an escape character,因此您可以添加"\n"(新行)和"\t"(制表符)等字符。字符串之前的r表示"我的反斜杠不是转义字符"。

有趣的是,看起来你的字符串"C:\Users\User\Desktop\key_values.txt"在python 2中运行正常,因为没有任何反斜杠是看起来像已知转义序列的任何东西的一部分。但是在python 3中,"\Uxxxx"表示一个unicode字符。所以也许这就是为什么你的一些python文件可以应付而且有些人不能。

答案 1 :(得分:1)

其他答案都没问题......但这是节省时间的伎俩:

尝试使用斜杠而不是反斜杠:

file = open("C:/Users/User/Desktop/key_values.txt", "r")

适用于Windows。尝试使用Python 2.7

希望这有帮助