os.startfile使用Python2但在Python3上出现错误

时间:2017-03-02 14:45:20

标签: python python-3.x

所以我在Py2上做了一些快速的代码,它使用os和时间模块,每3秒打开一个图片5次,它完全适用于Py2,但在Py3上给出了一个错误,它没有解释任何东西对我来说。

错误:

(unicode错误)' unicodeescape'编解码器无法解码位置2-3中的字节:截断\ UXXXXXXXX转义

以下是代码:

import os
import time

times = 5
count = 0

print("This program has started")

while(count <= times):
    time.sleep(3)
    os.startfile("C:\Users\...\Picture.png")   # Truncated
    count += 1

else:
    print("Program has finished")

1 个答案:

答案 0 :(得分:1)

Python 3希望将\Uxxxx中的C:\Users序列视为unicode字符。在处理Windows路径(及其反斜杠)以使用raw strings时,这总是一个好主意,它会将反斜杠视为普通字符:

os.startfile(r"C:\Users\...\Picture.png")

或者,您可以单独转义反斜杠:

os.startfile("C:\\Users\\...\\Picture.png")