使用python正确编码文件路径

时间:2011-05-11 07:32:50

标签: python url-encoding

我试图通过从字典中获取路径来打开文件。一些文件名有逗号(,)和其他这样的字符,使用时会给出“没有找到这样的文件错误”

例如,以下文件路径无法打开:foo,%20bar.mp3

如果存在逗号等字符,则应将其编码为:foo%2C%20bar.mp3

谁能告诉我怎么做?

3 个答案:

答案 0 :(得分:15)

您可能需要pathname2url

Python 2.x(docs

>>> from urllib import pathname2url 
>>> pathname2url('foo, bar.mp3')
'foo%2C%20bar.mp3'

Python 3.x(docs

>>> from urllib.request import pathname2url
>>> pathname2url('foo, bar.mp3')
'foo%2C%20bar.mp3'

答案 1 :(得分:3)

from urllib import pathname2url
pathname2url('foo,bar.mp3')

答案 2 :(得分:2)

您可以使用urllib。如果使用Python 3.x,可能需要更改以下示例,但总体思路是相同的:

import urllib

encoded_filename = urllib.quote(filename)
f = open(encoded_filename)