Mais Text Munger

por Walter Cruz on 03/07/2008
in Python, Geek life

Whitespace, punctuation, numbers -- anything that isn't a word -- should also remain unchanged.

Ou seja, minha implementação anterior está fundamentalmente errada ;)

E eu só li essa parte do enunciado depois do comentário do Rodolpho.

Mas é fácil de resolver, usando o shlex mesmo:


import sys
import shlex

from random import shuffle

def munge(text):
    t = shlex.shlex(text, posix=False)
    t.quotes = "'"
    t.whitespace = ""
    #print(list(t))
    s = (munge_word(word) for word in t)
    print("".join(s))

def munge_word(aword):
    s = list(aword)
    first = s.pop(0)
    try:
      last = s.pop()
    except IndexError:
        return aword
    shuffle(s)
    return first + ''.join(s) + last

try:
  s = open(sys.argv[1]).read()
  munge(s)
except IndexError:
  print("Usage: munge.py file")
 

Endereço de trackback para este post

Trackback URL (clique direito e copie atalho/localização do link)

Sem feedback para esse post ainda

    Share Your Thoughts


    Seu endereço de e-mail não será revelado nesse site.

    Sua URL será exibida.
    PobreExcelente
    (Quebras de linha se tornam <br />)
    (Nome, e-mail & website)
    (Permitir que usuários o contatem através de um formulário eletrônico (seu e-mail não será exibido.))
    Subscribe to comments by email

    You can just use your OpenID to provide your name, e-mail and url.