这里的问题是您使用作为路径名分隔符,但是在Python字符串中也用作转义字符。特别是
b表示“退格”(或
'x08')。您可以避免其他反斜杠,因为没有相当多文献记载但可靠的行为,例如未知的转义序列
X被视为反斜杠,后跟一个
X。
有三种解决方案:
- 使用原始字符串,这意味着将忽略Python字符串转义符:
r"C:UsersdylanDesktopPractice Gamebrick.jpg"
。 - 转义您的反斜线:
"C:\Users\dylan\Desktop\Practice Game\brick.jpg"
。 - 改用正斜杠:
"C:/Users/dylan/Desktop/Practice Game/brick.jpg"
。
如果您已经记住了Python转义序列的列表,并且愿意依赖可能会更改但可能不会更改的功能,则可以仅对
b此处进行转义,而可以逃脱,但是应该清楚为什么其他三个是更好的主意长期来说。
尽管Windows路径名本机确实使用反斜杠分隔符,但所有内置的和标准库的Python函数以及第三方库中的大多数函数都非常乐意让您使用正斜杠来代替。(这是可行的,因为Windows根本不允许路径中的正斜杠。)
要了解其工作方式和原因,您可能需要尝试打印出字符串:
>>> print "C:UsersdylanDesktopPractice Gamebrick.jpg"C:UsersdylanDesktopPractice Gamrick.jpg>>> print r"C:UsersdylanDesktopPractice Gamebrick.jpg"C:UsersdylanDesktopPractice Gamebrick.jpg>>> print "C:\Users\dylan\Desktop\Practice Game\brick.jpg"C:UsersdylanDesktopPractice Gamebrick.jpg>>> print "C:/Users/dylan/Desktop/Practice Game/brick.jpg"C:/Users/dylan/Desktop/Practice Game/brick.jpg
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)