Caracteres especiais na execução de arquivos [RESOLVIDO]

1. Caracteres especiais na execução de arquivos [RESOLVIDO]

Bruno Belarmino de Queiroz
bbruno5

(usa Ubuntu)

Enviado em 13/08/2013 - 20:19h

Olá pessoal. Estou tendo um problema quanto a caracteres ASCII especiais, como í, é, etc. Estou fazendo um projeto de um Player em Python que usa Mplayer para executar vídeos e as bibliotecas python de sdl_mixer para executar músicas, bem como as bibliotecas sdl_image para abrir imagens.

O Player exibe na tela normalmente os caracteres acentuados, porém não é capaz de executar os arquivos que os contém. Então numa linha responsável por dar o caminho para os vídeos que estava assim:

os.system(self.sec_program + ' "' + self.list.marked_path() + '"')

Eu acrescentei (u'') e ficou assim:

os.system(self.sec_program + ' "' + (u'self.list.marked_path()') + '"')

Porém agora dá o seguinte erro:

MPlayer svn r34540 (Ubuntu), built with gcc-4.6 (C) 2000-2012 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing self.list.marked_path().
File not found: 'self.list.marked_path()'
Failed to open self.list.marked_path().


Exiting... (End of file)

Sei que isso é porque eu coloquei (u'') no lugar errado, mas já tentei de outras maneiras e não consegui. Será que alguém saberia me ajudar com a posição exata que eu devo colocar? Desde já agradeço.


  


2. MELHOR RESPOSTA

Tadzio Buscácio
Tadzio

(usa Linux Mint)

Enviado em 14/08/2013 - 21:24h

como não tenho seu fonte fica difícil adivinhar a tipagem...

assumindo:
self.list.marked_path() retorna uma string

os.system(self.sec_program + ' "' + str(self.list.marked_path()).decode('UTF-8') + '"')

provavelmente o 'str()' é exagero meu, mas nunca se sabe...

3. Re: Caracteres especiais na execução de arquivos [RESOLVIDO]

Bruno Belarmino de Queiroz
bbruno5

(usa Ubuntu)

Enviado em 14/08/2013 - 21:30h

Eu já havia descoberto, mas mesmo assim obrigado. É mais ou menos, como você falou. Realmente não precisa do str, mas só o decode também não é suficiente. Eu tive que colocar

os.system(self.sec_program + ' "' + self.list.marked_path().encode('Utf-8').decode('Utf-8')

Desse jeito deu certo. :)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts