Правильно закодируйте путь к файлу, используя python - PullRequest
9 голосов
/ 11 мая 2011

Я пытаюсь открыть файлы, получив путь из словаря.В некоторых именах файлов есть запятые (,) и другие подобные символы, которые при использовании дают сообщение об ошибке «файл не найден»

Например, следующий путь к файлу не будет открыт: foo,%20bar.mp3

Если существуют такие символы, как запятые, тогда они должны быть закодированы как: foo%2C%20bar.mp3

Может кто-нибудь сказать мне, как это сделать?

Ответы [ 3 ]

15 голосов
/ 11 мая 2011

Вам может понадобиться pathname2url

Python 2.x ( документы )

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

Python 3.x ( документы )

>>> from urllib.request import pathname2url
>>> pathname2url('foo, bar.mp3')
'foo%2C%20bar.mp3'
3 голосов
/ 11 мая 2011
from urllib import pathname2url
pathname2url('foo,bar.mp3')
2 голосов
/ 11 мая 2011

Вы можете использовать urllib.Следующий пример может потребоваться изменить, если вы используете Python 3.x, но общая идея та же:

import urllib

encoded_filename = urllib.quote(filename)
f = open(encoded_filename)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...