Por que obtenho um SyntaxError para um escape Unicode no caminho do meu arquivo?


105

A pasta que desejo acessar se chama python e está na minha área de trabalho.

Eu recebo o seguinte erro quando tento chegar a ele

>>> os.chdir('C:\Users\expoperialed\Desktop\Python')
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

8
Experimente s.chdir(r'C:\Users\expoperialed\Desktop\Python'); leia: docs.python.org/2/reference/…
NullUserException

Respostas:


168

Você precisa usar uma string bruta , dobrar as barras ou usar barras normais:

r'C:\Users\expoperialed\Desktop\Python'
'C:\\Users\\expoperialed\\Desktop\\Python'
'C:/Users/expoperialed/Desktop/Python'

Em strings Python regulares, a \Ucombinação de caracteres sinaliza um escape de ponto de código Unicode estendido.

Você pode encontrar uma série de outros problemas, para qualquer uma das sequências de escape reconhecidas , como \aou tou \x, etc.


Isso não me ajuda :(
Dmitry,

1
@Dmitry, seu comentário não ajuda ninguém. Desculpe, a resposta não ajudou a resolver seu problema, mas como vou melhorar minha postagem com esse feedback?
Martijn Pieters

Veja minha resposta abaixo.
Dmitry,

@Dmitry: esse é um problema diferente e tem pouco a ver com literais de string. Existem outras postagens no site que tratam do raw_unicode_escapecodec. O fato de um pacote específico ter um bug que gera a mesma exceção não é realmente uma resposta a essa pergunta específica, então o excluí novamente (a comunidade já o havia excluído antes). Suspeito que existam maneiras melhores de resolver esse bug específico (como não chegar ao ponto em que você precisa usar raw_unicode_escapeem primeiro lugar).
Martijn Pieters

10

C:\\Users\\expoperialed\\Desktop\\Python Essa sintaxe funcionou para mim.


7

Isso geralmente acontece no Python 3. Um dos motivos comuns seria que, ao especificar o caminho do arquivo, você precisa de "\\" em vez de "\". Como em:

filePath = "C:\\User\\Desktop\\myFile"

Para Python 2, apenas usar "\" funcionaria.


5
f = open('C:\\Users\\Pooja\\Desktop\\trolldata.csv')

Use '\\' para o programa Python na versão 3 e superior do Python .. O erro será resolvido ..


por que triplicar `\`? Editando erro de digitação? Ok, agora vejo o histórico de postagens e alguém corrigiu a formatação com o cuidado insuficiente, então corrigi isso. Familiarize-se com os recursos do SO .
Marek R de

1

Todas as três sintaxes funcionam muito bem.

Outra maneira é escrever primeiro

path = r'C: \ user \ ................... '(qualquer que seja o caminho para você)

e, em seguida, passando para os.chdir (caminho)


0

Usa isto

os.chdir('C:/Users\expoperialed\Desktop\Python')

-1

Eu tive o mesmo erro. Basicamente, suspeito que o caminho não pode começar com "U" ou "Usuário" depois de "C: \". Mudei meu diretório para "c: \ file_name.png" colocando o arquivo que desejo acessar do python diretamente no caminho 'c: \'.

No seu caso, se você precisar acessar a pasta "python", talvez reinstale o python e altere o caminho de instalação para algo como "c: \ python". Caso contrário, apenas evite "... \ User ..." em seu caminho e coloque seu projeto em C :.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.