От этого:
# -*- coding: cp1251 -*-
и этого:
# -*- coding: utf-8 -*-
Толку 0.
# -*- coding: cp1251 -*-
# -*- coding: utf-8 -*-
dir = os.path.abspath(os.curdir) # -- C:\Documents and Settings\Admin\Рабочий стол files = glob.glob(dir) # -- ['C:\\Documents and Settings\\Admin\\\xd0\xe0\xe1\xee\xf7\xe8\xe9 \xf1\xf2\xee\xeb']
nnmware
Про телепатов поддерживаю, тоже видел.
Винды нет в наличии проверить, а вот так не сработает?
files = glob.glob(os.path.join(dir, u'*'))
Traceback (most recent call last): File "C:/Documents and Settings/Admin/Рабочий стол/copyFiles.py", line 8, in <module> files = glob.glob(os.path.join(dir, u'*')) File "C:\Python27\lib\ntpath.py", line 108, in join path += "\\" + b UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 32: ordinal not in range(128) >>>
152RUSlGefУзнать, наконец, что такое юникод.
Проблема в кодировке во второй строчке. Мне бы хотелось узнать, как это можно решить?
dir = os.path.abspath(os.curdir) for files in os.listdir(dir): print files
152RUSlGefА у меня переименовать директорию быстрее получается. И после этого забывается не только ваша проблема, но и такое множество других, что многие даже и не подозревают сколько их (проблемы бывают не только с питоном).
русскоязычные папки, причем изменить их нельзя. 2 дня уже ищу инфу
>>> import win32api >>> win32api.GetShortPathName(u"C:\\Program Files") 'C:\\PROGRA~1'
dir /X /-C 02.03.2013 16:12 1 a.py 02.03.2013 22:35 38 aaa.py 23.09.2011 20:47 215040 BOOST_~1.DLL boost_python-vc100-mt-1_47.dll 18.07.2012 20:40 243712 dudley.dll 18.07.2012 20:38 653312 escript.dll 18.07.2012 20:42 842240 finley.dll 23.09.2011 11:24 120320 netcdf.dll 23.09.2011 11:25 76288 NETCDF~1.DLL netcdf_cpp.dll 18.07.2012 20:39 292864 pasowrap.dll 18.07.2012 20:42 148992 weipa.dll 02.03.2013 22:42 1 1C1CC~1.TXT археолог геолог.txt