文件夹路径中的编码问题

时间:2018-05-08 10:29:55

标签: python encoding utf cyrillic

我有一个文件夹路径,它有一些西里尔字母,可以停止另一个脚本的进程。我需要获得没有西里尔字母的文件夹路径,但python不会返回它。

该文件夹为C:\Users\PereverzevPV\Documents\Инв

我有:

import os
folder = os.getcwd()
print folder

无论我设置什么编码,输出都是空的。我需要得到

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

3 个答案:

答案 0 :(得分:1)

如果以unicode传递文件路径,则返回也将是unicode:

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


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

也许您可以使用它,然后根据需要重新组合路径。

答案 1 :(得分:1)

试试这个:

# coding: UTF-8

import os

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

我们需要编码CWD然后解码他

答案 2 :(得分:0)

这可能会有所帮助。您的问题是,您没有逃脱\\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)