0
當涉及到文件夾路徑時,我被python和unicode /字符編碼(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
-call工作?
感謝您給我們小費!但是...解決方法並沒有解決我的問題,我仍然得到相同的錯誤。我實際上是用一個wxpython按鈕klick啓動'subprocess' - 這有什麼關係嗎? – xph