Я застрял в кодировке python и unicode/character (Python 2.7), когда дело касается путей к папкам.Unicode в пути к папке
Я построить путь из отдельных частей, созданных по моему сценарию:
>>> parts = {u'first':var_a, u'second':var_b, u'third':var_c}
>>> parts
{u'second': u'\xe4\xfc\xf6\xdf', u'third': u'1120_21_22', u'first': u'0222'}
... Далее следуют:
>>> path = os.path.join('test', parts[u'first'], parts[u'second'], parts[u'third'])
>>> path
u'test\\0222\\\xe4\xfc\xf6\xdf\\1120_21_22'
Там нет проблем с печатью, что:
>>> print path
test\0222\äüöß\1120_21_22
И это также верно:
>>> os.path.isdir(path)
True
Но я не могу открыть его:
>>> subprocess.Popen(u'explorer "' + path + u'"')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\subprocess.py", line 679, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 896, in _execute_child
startupinfo)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 20-23: ordinal not in range(128)
Это происходит только с помощью специальных-символов в пути. Какое кодирование/декодирование необходимо сделать, чтобы сделать работу subprocess
?
Спасибо за этот совет! Но ... обходной путь не решил проблему для меня, я все равно получаю ту же ошибку. Я действительно начинаю «подпроцесс» с помощью кнопки wxpython klick - это важно? – xph