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

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

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())

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