Мне нравится версия Ofri для простоты и безопасности, и версия user97370 для создания привлекательного пространства.
Почему бы не иметь оба?
Я бы сделал это так:
import string, urllib
trans = string.maketrans(' ', '-')
x = 'a sentence with a bunch of spaces'
x2 = x.translate(trans)
x3 = urllib.quote(x2)
print x3 #--> 'a-sentence-with-a-bunch-of-spaces'
Другими словами, выполните один метод, а затем другой. x3
должно быть безопасно для использования в строке URL. Вам не нужно создавать новые параметры для каждого, просто продолжайте воссоздавать x
, я использовал x2
и x3
, чтобы сделать его более понятным. Вы также можете добавить другие вещи в матрицу перевода, если есть вещи, кроме пробелов, от которых вы хотите избавиться.