Проблема в том, что ваша консоль вывода использует кодировку cp1252
для вашего сообщения об ошибке, и иврит не может быть напечатан под этой кодировкой.Используйте IDE, которая поддерживает UTF-8, и шрифт в этой IDE, который поддерживает иврит, и он будет работать правильно при использовании os.listdir
с путем Unicode.
Вот пример из PythonWin IDE с и без Unicode-пути.
PythonWin 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32.
Portions Copyright 1994-2008 Mark Hammond - see 'Help/About PythonWin' for further copyright information.
>>> import os
>>> for f in os.listdir('.'):
... print f
...
x.exe
x.py
x.pyc
y.py
?????.xls
>>> for f in os.listdir(u'.'):
... print f
...
x.exe
x.py
x.pyc
y.py
המסמך.xls
Также обратите внимание, что объявление кодировки в вашем исходном файле не делает ничего для генерации вывода. только объявляет, в какой кодировке сохранен исходный файл, что влияет на возможность записи не-ASCII символов в исходном файле .