Python 获取当前正在运行的脚本的unicode路径
此网站上存在问题,但它有缺陷,因为它返回一个Python 获取当前正在运行的脚本的unicode路径,python,unicode,Python,Unicode,此网站上存在问题,但它有缺陷,因为它返回一个(无论是在使用\uuuu文件时还是在使用模块inspect时)而不是我需要的,因为我的路径包含非ascii字符(具体来说是希伯来文字符) 如何在文件系统编码中获取中当前运行脚本的路径和文件名?是否有任何内置的Unicode友好函数或解决方案 仅调用\uuu file\uuu.encode(sys.getfilesystemencoding())失败,ascii编解码器无法解码字节…您需要.decode(),而不是.encode()。要从unicode到
(无论是在使用\uuuu文件时还是在使用模块inspect
时)而不是我需要的
,因为我的路径包含非ascii字符(具体来说是希伯来文字符)
如何在文件系统编码中获取
中当前运行脚本的路径和文件名?是否有任何内置的Unicode友好函数或解决方案
仅调用\uuu file\uuu.encode(sys.getfilesystemencoding())
失败,ascii编解码器无法解码字节…
您需要.decode()
,而不是.encode()
。要从unicode
到str
,需要进行编码。若要转到另一个方向,则需要解码
尝试:
结果:
$ python 'קוֹבֶץ.py'
<type 'unicode'> קוֹבֶץ.py
$python'קוֹבֶץ.py'
קוֹבֶץ.py
您需要的是.decode()
,而不是.encode()
。要从unicode
到str
,需要进行编码。若要转到另一个方向,则需要解码
尝试:
结果:
$ python 'קוֹבֶץ.py'
<type 'unicode'> קוֹבֶץ.py
$python'קוֹבֶץ.py'
קוֹבֶץ.py
我想您应该使用解码
而不是编码
:
>>> type('string'.encode('utf-8'))
<type 'str'>
>>> type('string'.decode('utf-8'))
<type 'unicode'>
>类型('string'.encode('utf-8'))
>>>类型('string')。解码('utf-8'))
一般来说,
encode
返回一个bytestring,decode
一个unicode对象。我想你应该使用decode
而不是encode
:
>>> type('string'.encode('utf-8'))
<type 'str'>
>>> type('string'.decode('utf-8'))
<type 'unicode'>
>类型('string'.encode('utf-8'))
>>>类型('string')。解码('utf-8'))
一般来说,
encode
返回一个bytestring,decode
一个unicode对象。现在一切都有意义了!多谢各位much@Jonathan:注意:问题中的错误是由于.encode()
方法在使用适用于可表示字符的sys.getdefaultencoding()
对bytestring进行编码之前,尝试使用sys.getfilesystemencoding()
对其进行解码(在Linux上,您的本地设置应该是正确的)。现在一切都有意义了!非常感谢much@Jonathan:注意:问题中的错误是由于.encode()
方法在使用sys.getdefaultencoding()
(在Python 2上应为ascii)编码之前,尝试使用sys.getfilesystemencoding()对ByTestString进行解码
适用于可表示字符(在Linux上,您的本地设置应该正确)。