【问题标题】:how to import a file in python 3.3.3 [duplicate]如何在python 3.3.3中导入文件[重复]
【发布时间】:2013-12-24 09:25:37
【问题描述】:

我正在尝试从另一个文件加载一个数组(现在已经有一段时间了,并且已经经历了很多堆栈溢出问题),但我无法让最简单的事情起作用。这是我得到的错误之一:

 >>> inp = open ('C:\Users\user\Documents\w-game\run\map1.txt','r')
 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes 
 in position 2-3:       truncated \UXXXXXXXX escape

有时我没有收到该错误。它根本找不到该文件,尽管我确定它在那里并且是一个文本文件。

有人知道发生了什么,或者这种方法在 python 3.3.3 中是否不再适用?

【问题讨论】:

    标签: python file-io python-3.x


    【解决方案1】:

    错误不在文件中,而是在文件名字符串中。您需要转义文件名中的反斜杠;使用原始字符串:

    open(r'C:\Users\user\Documents\w-game\run\map1.txt')
    

    因为\Uhhhhhhhh 是 BMP 之外字符的 unicode 转义码。

    你也可以把斜线加倍:

    open('C:\\Users\\user\\Documents\\w-game\\run\\map1.txt')
    

    或使用正向斜线:

    open('C:/Users/user/Documents/w-game/run/map1.txt')
    

    演示:

    >>> print('C:\Users')
      File "<stdin>", line 1
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
    >>> print(r'C:\Users')
    C:\Users
    >>> print('C:\\Users')
    C:\Users
    >>> print('C:/Users')
    C:/Users
    

    【讨论】:

    • 啊,我明白了,谢谢 :D
    • 我认为正斜杠是最好的,因为它们更跨平台。可能不在这个例子中,但在相对路径中应该可以在 Windows 和 Unix 上工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-18
    • 2013-12-24
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2019-12-04
    相关资源
    最近更新 更多