python pokazuje błąd przy próbie wyświetlenia niektórych znaków unicode

Odpowiedz Nowy wątek
2011-08-30 11:23
0

Wersja Python-a: 3.2.1
System Operacyjny: Windows
Uwagi: w dupie mam przenośność kodu

Skrypt ma docelowo wyświetlać wszystkie pliki z folderu, w którym znajduje się skrypt:

import msvcrt
import os
 
path = os.path.dirname(__file__)
print('Aktualnie znajdujesz sie w folderze {0}'.format(path))
 
dirList=os.listdir(path)
for fname in dirList:
    print(fname)
 
print("\nNacisnij jakis klawisz, aby kontynuowac...")
ch = msvcrt.getch()

Błąd pojawia się w momencie gdy jeden z folderów ma w sobie znak: ñ (n z falką na górze):

Traceback (most recent call last):
  File "***\test.py", line 13, in <module>
    print(str(fname))
  File "***\Python32\lib\encodings\cp852.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\xf1' in position 4:
 character maps to <undefined>

░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2011-08-30 19:39

2 rozwiązania:

import sys
 
def print2(*Text):  
    RAWOut = open(1, 'w', encoding='utf8', closefd=False)  
    print(*Text, file=RAWOut)  
    RAWOut.flush()  
    RAWOut.close()
 
def print3(*Text):
    for txt in Text:
        sys.stdout.buffer.write(txt.encode())

░█░█░█░█░█░█░█░█░█░█░█░
edytowany 1x, ostatnio: krwq, 2011-08-30 19:40

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0