2013-12-24 2 views
3

Я пытаюсь загрузить массив из другого файла (какое-то время сейчас, и я пережил много вопросов переполнения стека), но я не могу получить самый простой вещи для работы. Это одна из ошибок, которые я получил:Как импортировать файл в python 3.3.3

>>> 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?

ответ

2

Ошибка отсутствует в файле, но в файле filename. Вам нужно избежать обратных косых черт в вашем имени файла; использовать сырые строки:

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

потому что \Uhhhhhhhh является юникод кодом побега для персонажа за пределами BMP.

Вы также можете удвоить косые:

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

или использовать вперед Slashes:

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 
+0

ааа Я вижу, спасибо: D – thegunmaster

+0

I подумайте, что косые черты лучше всего, потому что они более крестообразные. Возможно, не в этом примере, но в относительном пути они должны работать как на Windows, так и на Unix. – cubuspl42

Смежные вопросы