Não está muito claro na sua pergunta, mas parece que você está pesquisando urllib . Observe que o urllib espera sequências de 8 bits, portanto, você precisará executar um decodificador / codificação sofisticado. Bem-vindo ao suporte unicode um pouco estranho do python2, pythn3 é muito melhor.
# -*- coding: utf-8 -*-
import urllib
url=u'/home/javier/Área'
url2 = url.encode('utf-8') # urllib expects 8-bit string
url3 = urllib.quote_plus(url2)
print url3 # >> %2Fhome%2Fjavier%2F%C3%81rea
url4 = urllib.unquote(url3) # It will return a 8-bit string
print url4 # >> /home/javier/Área
print url4.decode('utf-8')
Você pode usar urllib.qoute em vez de * urllib.quote_plus *, não irá citar espaços, + (vantagens) e / (barras). Ambas as funções aceitam uma string como um segundo parâmetro, elas manterão qualquer caractere nessa string como é (quero dizer, não irá citá-lo) na string de saída. Observe que o valor padrão para safe, o nome do segundo parâmetro, é '/' para aspas e '' para quote_plus. Se você não incluir uma barra na sua segunda cotação de parâmetro, ela será alterada.
urllib.quote_plus('a/a','/') # 'a/a'