Проблема с кодированием в пути к папке - PullRequest
0 голосов
/ 08 мая 2018

У меня есть путь к папке, в котором есть какая-то кириллица, которая останавливает процесс другого скрипта. Мне нужно получить путь к папке без букв кириллицы, но python не возвращает его.

Папка C:\Users\PereverzevPV\Documents\Инв.

У меня есть:

import os
folder = os.getcwd()
print folder

Вывод пустой независимо от того, какую кодировку я установил. Мне нужно получить

'C:\\Users\\PereverzevPV\\Documents\\\xd0\x98\xd0\xbd\xd0\xb2'

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Если вы передадите путь к файлу в юникоде, то возврат также будет в юникоде:

>>> for dirpath, dirnames, filenames in os.walk(u"D:\\SO"):
    print dirnames


[u'\u0142', u'\u0418\u043d\u0432']

Может быть, вы могли бы использовать это, а затем пересобрать путь так, как хотите.

0 голосов
/ 08 мая 2018

попробуйте это:

# coding: UTF-8

import os

os.getcwd().encode('utf-8').decode('utf-8')

Нам нужно закодировать CWD, а затем расшифровать его

0 голосов
/ 08 мая 2018

Это может помочь. Ваша проблема в том, что вы не можете избежать \: \U, \P, \D или - недопустимые символы utf-8.

# coding: UTF-8

txt = r"C:\Users\PereverzevPV\Documents\Инв"
txt = "C:\\Users\\PereverzevPV\\Documents\\Инв"

esc_txt = txt.encode('utf-8')

print(esc_txt)
...