Ir para conteúdo
Fórum Script Brasil
  • 0

Unescape


Mayron Cachina

Pergunta

Pessoal, estou começando a ver a linguagem agora, será que alguém, poderia me dar uma força ......

#! /usr/bin/env python

import xml.sax.saxutils as saxutils
f = open('a.txt')
try:
    print saxutils.unescape(f.read())
finally:
    f.close()
o arquivo a.txt
>
<
á      á
â     â
à     à

mais ele só converte o &gt que é < e o &lt que é o >

participo da lista python-brasil, mandaram eu da uma estudadinha no htmlentitydefs

como sou novato na linguagem, estou apanhando um pouco, se alguém poder me ajudar, agradeço!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Você deu uma olhada no help da linguagem?

unescape( data[, entities])

Unescape "&amp;", "&lt;", and "&gt;" in a string of data.

You can unescape other strings of data by passing a dictionary as the optional entities parameter. The keys and values must all be strings; each key will be replaced with its corresponding value.

Ou seja, esta função por padrão *só* troca mesmo estes dois e o &amp. Para os demais você pode fazer:

entidades = {"&aacute;" : "á",
             "&acirc;"  : "â",
             "&agrave;" : "à"}

f = open('a.txt')

try:
    print saxutils.unescape(f.read(), entidades)
finally:
    f.close()

Certo? ;)

Graymalkin

PS: O que o título do tópico tem a ver com o isso? :huh:

Link para o comentário
Compartilhar em outros sites

  • 0

Resolvi o que eu queria com esse código, obrigado pela ajuda!

#! /usr/bin/env python
# -*- coding: iso-8859-15 -*-

import htmlentitydefs
import re
import cgi

#Informações
origem = raw_input("Local do arquivo do arquivo original: ")
fim    = raw_input("Local do arquivo final: ")

pattern = re.compile("&(\w+?);")

def descape_entity(m, defs=htmlentitydefs.entitydefs):
    # callback: translate one entity to its ISO Latin value
    try:
        return defs[m.group(1)]
    except KeyError:
        return m.group(0) # use as is

def descape(string):
    return pattern.sub(descape_entity, string)

#Abre os arquivos para manipulação de dados
f = open(origem)
w = open(fim,'w')

#Operações
try:
    novo = descape(f.read())
    w.write(novo)
finally:
    f.close()
    w.close()

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...