Utilizador:Giro720/Scripts
Wikisource, a biblioteca livre
Índice |
strip.py
# -*- coding: latin-1 -*- arquivo_entrada = "_entrada.txt" entrada = open(arquivo_entrada, 'r') texto = entrada.read() entrada.close() texto = texto.replace("\n-", "\n— ") while texto.find(" ")+1: print "Removendo espaços em branco." texto = texto.replace(" ", " ") while texto.find(" ")+1: print "Removendo tabs." texto = texto.replace(" ", "") while texto.find("\n\n \n")+1: print "Removendo linhas em branco." texto = texto.replace("\n\n \n", "\n\n") while texto.find("\n\n\n")+1: print "Removendo linhas vazias" texto = texto.replace("\n\n\n", "\n\n") while texto.find("\n ")+1: print "Removendo espaços em branco." texto = texto.replace("\n ", "\n") entrada = open(arquivo_entrada, 'w') entrada.write(texto) entrada.close()
strip_lei.py
# -*- coding: latin-1 -*- import re arquivo_entrada = "_entrada.txt" entrada = open(arquivo_entrada, 'r') texto = entrada.read() entrada.close() texto = texto.replace(" – ", " — ").replace("\n-", "\n—").replace("°", "º") texto = texto.replace(" º", "º").replace(" )", ")") texto = texto.replace(".º", "º").replace("º.", "º") while texto.find("\n\n\n")+1: print "Removendo linhas vazias" texto = texto.replace("\n\n\n", "\n\n") texto = re.sub("\nT(ÍTULO|ítulo) (.*)\n\n", "\n*Título \\2: ", texto) texto = re.sub("\nT(ÍTULO|ítulo) (.*)\n", "\n*Título \\2: ", texto) texto = re.sub("\nC(APÍTULO|apítulo) (.*)\n", "\n\n=Capítulo \\2=\n;", texto) texto = re.sub("\nS(EÇÃO|eção) (.*)\n", "\n\n==Seção \\2==\n;", texto) texto = re.sub("\nS(ECÇÃO|ecção) (.*)\n", "\n\n==Secção \\2==\n;", texto) texto = re.sub("\nS(UBSEÇÃO|ubseção) (.*)\n", "\n\n===Subseção \\2===\n;", texto) texto = re.sub("\nS(UBSECÇÃO|ubsecção) (.*)\n", "\n\n===Subsecção \\2===\n;", texto) texto = re.sub("\nArtigo ([0-9]*)(º|)", "\n\n====Art. \\1\\2====\n", texto) texto = re.sub("\nArt. ([0-9]*)(º|)", "\n\n====Art. \\1\\2====\n", texto) texto = re.sub("\n§( |)([0-9]*)(º|)", "\n\n'''§ \\2\\3'''", texto) texto = re.sub("\nParágrafo (Ú|ú)nico( |)(-|.)", "\n\n'''Parágrafo único'''. ", texto) texto = re.sub("\n([IVXL]*)( |)(-|—)", "\n:'''\\1''' -", texto) texto = re.sub("\n([a-z])\)", "\n::\\1) ", texto) texto = texto.replace(":'''''' -", "") while texto.find(" ")+1: print "Removendo tabs." texto = texto.replace(" ", "") while texto.find(" ")+1: print "Removendo espaços em branco." texto = texto.replace(" ", " ") while texto.find("\n\n \n")+1: print "Removendo linhas em branco." texto = texto.replace("\n\n \n", "\n\n") while texto.find("\n\n\n")+1: print "Removendo linhas vazias" texto = texto.replace("\n\n\n", "\n\n") while texto.find("\n ")+1: print "Removendo espaços em branco." texto = texto.replace("\n ", "\n") while texto.find(" \n")+1: print "Removendo espaços em branco." texto = texto.replace(" \n", "\n") texto = re.sub("\n;\n", "\n;", texto) texto = re.sub("\n:(.*)\n\n:", "\n:\\1\n:", texto) entrada = open(arquivo_entrada, 'w') entrada.write(texto) entrada.close()
num_romano.py
# -*- coding: utf-8 -*- """ num_romano(int), retorna int convertido em numerais romanos Limitado até 999. """ def num_romano(num_inteiro): centena = ((num_inteiro/100)%10)*100 dezena = ((num_inteiro/10)%10)*10 unidade = ((num_inteiro/1)%10) cap_romano="" if centena == 100: cap_romano+='C' elif centena == 200: cap_romano+='CC' elif centena == 300: cap_romano+='CCC' elif centena == 400: cap_romano+='CD' elif centena == 500: cap_romano+='D' elif centena == 600: cap_romano+='DC' elif centena == 700: cap_romano+='DCC' elif centena == 800: cap_romano+='DCCC' elif centena == 900: cap_romano+='CM' if dezena == 10: cap_romano+='X' elif dezena == 20: cap_romano+='XX' elif dezena == 30: cap_romano+='XXX' elif dezena == 40: cap_romano+='XL' elif dezena == 50: cap_romano+='L' elif dezena == 60: cap_romano+='LX' elif dezena == 70: cap_romano+='LXX' elif dezena == 80: cap_romano+='LXXX' elif dezena == 90: cap_romano+='XC' if unidade == 1: cap_romano+='I' elif unidade == 2: cap_romano+='II' elif unidade == 3: cap_romano+='III' elif unidade == 4: cap_romano+='IV' elif unidade == 5: cap_romano+='V' elif unidade == 6: cap_romano+='VI' elif unidade == 7: cap_romano+='VII' elif unidade == 8: cap_romano+='VIII' elif unidade == 9: cap_romano+='IX' return cap_romano
poem_finder.py
# -*- coding: latin-1 -*- arquivo_entrada = "_entrada.txt" entrada = open(arquivo_entrada, 'r') texto = entrada.readlines() entrada.close() entrada = open(arquivo_entrada, 'w') control = 0 for i in range(len(texto)): if i > 0 and i < len(texto) - 1 : if texto[i-1].strip() == "" and texto[i].strip() != "" and texto[i+1].strip() != "" and not control: entrada.write("<poem>\n") entrada.write(texto[i]) control = 1 elif control and texto[i].strip() == "": entrada.write("</poem>\n") entrada.write("\n") control = 0 else: entrada.write(texto[i]) else: entrada.write(texto[i]) if control: entrada.write("</poem>\n") entrada.close() entrada = open(arquivo_entrada, 'r') texto = entrada.read() entrada.close() texto = texto.replace("</poem>\n\n<poem>", "") entrada = open(arquivo_entrada, 'w') entrada.write(texto) entrada.close()
capitalizador_simples.py
"""Procura por linhas que marcam incício do capitulo, para ser utilizado com o source_prosa.py. Ex: 1 ->Fica: *I """ # -*- coding: latin-1 -*- from num_romano import num_romano arquivo_entrada = '_entrada.txt' entrada = open(arquivo_entrada, 'r') texto = entrada.readlines() entrada.close() entrada = open(arquivo_entrada, 'w') cap = 1 i = 0 while i < len(texto): frase = texto[i] if frase[0] == "@": cap = 1 entrada.write(frase) i += 1 elif frase.strip() == num_romano(cap) or frase.strip() == str(cap): entrada.write("*"+num_romano(cap)+"\n") cap += 1 i += 1 else: entrada.write(frase) i += 1 entrada.close()
source_prosa.py
# -*- coding: latin-1 -*- """ Programa gera cabeçalhos para os textos em um arquivo em codificação utf-8, para ser exportado com auxilio do pagefromfile.py; cria ainda uma lista de índice correspondente ao artigo principal da obra que deve ser exportada manualmente. Arquivo de entrada: '_entrada.txt' Arquivos de saída: 'lista.txt', 'dic.txt' Marcação de início de capítulo: '*' Marcação de início de divisão: '@' Ex: Autor Obra @Primeira Parte *I: A noite texto... """ from num_romano import num_romano def gera_cabecalho(inicio, fim, div): cap = 0 for j in range(inicio, fim): frase = unicode(texto[j], 'latin-1').encode('utf-8') if frase[0] == '@': titulo_div_utf = frase[1:len(frase)-1] titulo_div = unicode(titulo_div_utf, 'utf-8').encode('latin-1') titulo_div_secao_utf = titulo_div_utf + ":" div += 1 lista.write("==%s==\n" % titulo_div ) cap = 0 continue elif frase[0] == '*': cap += 1 capitulo_utf = frase[1:len(frase)-1] capitulo = unicode(capitulo_utf, 'utf-8').encode('latin-1') if div: lista.write("* [[%s/%s/%s|Capítulo %s]]\n" % (obra, num_romano(div), num_romano(cap), capitulo ) ) if cap == 1 and div > 1: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s CapÃtulo %s\n" "|anterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|posterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div-1), num_romano(cap_anterior), div_lista[div-1]+":", num_romano(cap_anterior), obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1), notas_utf) ) elif cap == 1: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s CapÃtulo %s\n" "|anterior=\n" "|posterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1), notas_utf) ) else: saida.write("[[Categoria:%s|%s, CapÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, titulo_div_utf, cap-1) ) if cap == cap_atual and div != div_lista[0]: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s CapÃtulo %s\n" "|anterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|posterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1), obra_utf, num_romano(div+1), num_romano(1), div_lista[div+1]+":", num_romano(1), notas_utf) ) elif cap == cap_atual: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s CapÃtulo %s\n" "|anterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|posterior=\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1), notas_utf) ) else: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s CapÃtulo %s\n" "|anterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|posterior=[[%s/%s/%s|%s CapÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1), obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1), notas_utf) ) else: lista.write("* [[%s/%s|Capítulo %s]]\n" % (obra, num_romano(cap), capitulo) ) if cap == 1: saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=CapÃtulo %s\n" "|anterior=\n" "|posterior=[[%s/%s|CapÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(cap), obra_utf, autor_utf, capitulo_utf, obra_utf, num_romano(cap+1), num_romano(cap+1), notas_utf) ) else: saida.write("[[Categoria:%s|CapÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap-1) ) if cap == cap_atual: saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=CapÃtulo %s\n" "|anterior=[[%s/%s|CapÃtulo %s]]\n" "|posterior=\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(cap), obra_utf, autor_utf, capitulo_utf, obra_utf, num_romano(cap-1), num_romano(cap-1), notas_utf) ) else: saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=CapÃtulo %s\n" "|anterior=[[%s/%s|CapÃtulo %s]]\n" "|posterior=[[%s/%s|CapÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(cap), obra_utf, autor_utf, capitulo_utf, obra_utf, num_romano(cap-1), num_romano(cap-1), obra_utf, num_romano(cap+1), num_romano(cap+1), notas_utf) ) else: saida.write(frase) if div: saida.write("[[Categoria:%s|%s CapÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, titulo_div_secao_utf, cap)) elif cap: saida.write("[[Categoria:%s|CapÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap)) entrada = open('_entrada.txt', 'r') lista = open('lista.txt', 'w') saida = open('dict.txt', 'w') texto = entrada.readlines() autor = texto[0].strip() obra = texto[1].strip() notas = texto[2].strip() autor_utf = unicode(autor, 'latin-1').encode('utf-8') obra_utf = unicode(obra, 'latin-1').encode('utf-8') notas_utf = unicode(notas, 'latin-1').encode('utf-8') titulo_div_secao_utf = "" lista.write("{{navegar\n" "|obra=%s\n" "|autor=%s\n" "|notas=%s\n}}\n" "{{wikipédia|%s}}\n" "{{versão para impressão disponível}}\n" % (obra, autor, notas, obra) ) #Gera arquivo com cabeçalho div_lista = [0] cap_anterior = 0 # Número do último capítulo do tomo anterior cap_atual = 0 # Número do último capítulo do tomo atual inicio = 3 for i in range(3, len(texto)): frase = unicode(texto[i], 'latin-1').encode('utf-8') if frase[0] == '@': div_lista[0] += 1 div_lista += [frase[1:len(frase)].strip()] if div_lista[0] > 1: fim = i gera_cabecalho(inicio, fim, div_lista[0]-2) inicio = fim cap_anterior = cap_atual cap_atual = 0 elif frase[0] == '*': cap_atual += 1 if div_lista[0]: gera_cabecalho(inicio, len(texto), div_lista[0]-1) else: gera_cabecalho(inicio, len(texto), div_lista[0]) lista.write("\n[[Categoria: ]]\n" "[[Categoria:%s]]\n" "[[Categoria:%s| ]]\n" "[[Categoria:Romances brasileiros]]\n" "[[Categoria: ]]\n" % ( autor, obra) ) entrada.close() lista.close() lista = open('lista.txt', 'r') texto=lista.readlines() # Gera arquivo para impressão saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s'''}}{{Versão para impressão|%s}}\n" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|notas=%s\n}}\n" "==Ãndice==\n" % ( obra_utf, obra_utf, obra_utf, autor_utf, notas_utf) ) for i in range(7, len(texto)): frase = texto[i] if frase[0] == '*' or frase[0] == '=': saida.write("%s" % unicode(frase, 'latin-1').encode('utf-8') ) for i in range(7, len(texto)): frase = texto[i] if frase[0] == '*': saida.write("{{quebra de página}}\n" "{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'latin-1').encode('utf-8') ) saida.write("{{quebra de página}}\n" "{{GFDL-print}}\n{{-stop-}}" ) lista.close() saida.close()
source_poem.py
# -*- coding: latin-1 -*- """ Arquivo de entrada: '_entrada.txt' Arquivos de saída: 'lista.txt', 'dic.txt' Marcação do título da poesia: '*' """ entrada = open('_entrada.txt', 'r') lista = open('lista.txt', 'w') saida = open('dict.txt', 'w') texto = entrada.readlines() autor = texto[0].strip() obra = texto[1].strip() notas = texto[2].strip() autor_utf = unicode(autor, 'latin-1').encode('utf-8') obra_utf = unicode(obra, 'latin-1').encode('utf-8') notas_utf = unicode(notas, 'latin-1').encode('utf-8') titulo_div_secao_utf = "" lista.write("{{navegar\n" "|obra=%s\n" "|autor=%s\n" "|notas=%s\n}}\n" "{{wikipédia|%s}}\n" "{{versão para impressão disponível}}\n" % (obra, autor, notas, obra) ) #Gera arquivo com cabeçalho poem_control = 0 for i in range(3, len(texto)): frase = unicode(texto[i], 'latin-1').encode('utf-8') if frase[0] == '*': if poem_control: saida.write("[[Categoria:%s]]\n{{-stop-}}\n\n" % obra_utf) poem_control = 1 poema_utf = frase[1:].strip() poema = unicode(poema_utf, 'utf-8').encode('latin-1') saida.write("{{-start-}}\n{{subst:void|'''%s'''}}" "{{navegar\n" "|obra=%s\n" "|autor=%s\n" "|notas={{integra|poema=%s}}\n}}\n" % ( poema_utf, poema_utf, autor_utf, obra_utf) ) lista.write("* [[%s]]\n" % poema ) else: saida.write(frase) saida.write("[[Categoria:%s]]\n{{-stop-}}\n\n" % poema_utf ) lista.write("\n[[Categoria:%s]]\n" "[[Categoria:Poesia brasileira]]" % obra ) entrada.close() lista.close() lista = open('lista.txt', 'r') texto=lista.readlines() # Gera arquivo para impressão saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s'''}}{{Versão para impressão|%s}}\n" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|notas=%s\n}}\n" "==Ãndice==\n" % ( obra_utf, obra_utf, obra_utf, autor_utf, notas_utf) ) for i in range(7, len(texto)): frase = texto[i] if frase[0] == '*' or frase[0] == '=': saida.write("%s" % unicode(frase, 'latin-1').encode('utf-8') ) for i in range(7, len(texto)): frase = texto[i] if frase[0] == '*': saida.write("{{quebra de página}}\n" "{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'latin-1').encode('utf-8') ) saida.write("{{quebra de página}}\n" "{{GFDL-print}}\n{{-stop-}}" ) lista.close() saida.close()
source_lei.py
# -*- coding: latin-1 -*- import urllib from num_romano import num_romano def gera_cabecalho(inicio, fim, div): cap = 0 for j in range(inicio, fim): frase = unicode(texto[j], 'latin-1').encode('utf-8') if j+1 in range(inicio, fim): frase_proxima = texto[j+1].strip() if frase[0] == '@': titulo_div_utf = frase[1:len(frase)-1] titulo_div = unicode(titulo_div_utf, 'utf-8').encode('latin-1') titulo_div_secao_utf = titulo_div_utf + ":" div += 1 lista.write("==%s==\n" % titulo_div ) cap = 0 continue elif frase[0:2] == '*T': cap += 1 capitulo_utf = frase[1:len(frase)-1] capitulo = unicode(capitulo_utf, 'utf-8').encode('latin-1') lista.write("* [[%s/%s|%s]]\n" % (obra, num_romano(cap), capitulo) ) if div: lista.write("* [[%s/%s/%s|Capítulo %s]]\n" % (obra, num_romano(div), num_romano(cap), capitulo ) ) if cap == 1 and div > 1: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s TÃtulo %s\n" "|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div-1), num_romano(cap_anterior), div_lista[div-1]+":", num_romano(cap_anterior), obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1), notas_utf) ) elif cap == 1: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s TÃtulo %s\n" "|anterior=\n" "|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1), notas_utf) ) else: saida.write("[[Categoria:%s|%s, TÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, titulo_div_utf, cap-1) ) if cap == cap_atual and div != div_lista[0]: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s TÃtulo %s\n" "|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1), obra_utf, num_romano(div+1), num_romano(1), div_lista[div+1]+":", num_romano(1), notas_utf) ) elif cap == cap_atual: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s TÃtulo %s\n" "|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|posterior=\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1), notas_utf) ) else: saida.write("{{-start-}}\n{{subst:void|'''%s/%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s TÃtulo %s\n" "|anterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|posterior=[[%s/%s/%s|%s TÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(div), num_romano(cap), obra_utf, autor_utf, titulo_div_utf + ",", capitulo_utf, obra_utf, num_romano(div), num_romano(cap-1), titulo_div_secao_utf, num_romano(cap-1), obra_utf, num_romano(div), num_romano(cap+1), titulo_div_secao_utf, num_romano(cap+1), notas_utf) ) else: if cap == 1: saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s\n" "|anterior=\n" "|posterior=[[%s/%s|TÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(cap), obra_utf, autor_utf, capitulo_utf, obra_utf, num_romano(cap+1), num_romano(cap+1), notas_utf) ) else: saida.write("[[Categoria:%s|TÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap-1) ) if cap == cap_atual: saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s\n" "|anterior=[[%s/%s|TÃtulo %s]]\n" "|posterior=\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(cap), obra_utf, autor_utf, capitulo_utf, obra_utf, num_romano(cap-1), num_romano(cap-1), notas_utf) ) else: saida.write("{{-start-}}\n{{subst:void|'''%s/%s'''}}" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|seção=%s\n" "|anterior=[[%s/%s|TÃtulo %s]]\n" "|posterior=[[%s/%s|TÃtulo %s]]\n" "|notas=%s\n}}\n" % ( obra_utf, num_romano(cap), obra_utf, autor_utf, capitulo_utf, obra_utf, num_romano(cap-1), num_romano(cap-1), obra_utf, num_romano(cap+1), num_romano(cap+1), notas_utf) ) else: saida.write(frase) if frase[0:4] != '====': if frase[0:3] == '===': lista.write(":::[[%s/%s#%s|%s]]\n" % (obra, num_romano(cap), urllib.quote(frase[3:len(frase)-4].replace(" ", "_")).replace("%", "."), unicode(frase[3:len(frase)-4], 'utf-8').encode('latin-1')+": "+frase_proxima[1:]) ) elif frase[0:2] == '==': lista.write("::[[%s/%s#%s|%s]]\n" % (obra, num_romano(cap), urllib.quote(frase[2:len(frase)-3].replace(" ", "_")).replace("%", "."), unicode(frase[2:len(frase)-3], 'utf-8').encode('latin-1')+": "+frase_proxima[1:]) ) elif frase[0:1] == '=': lista.write(":[[%s/%s#%s|%s]]\n" % (obra, num_romano(cap), urllib.quote(frase[1:len(frase)-2].replace(" ", "_")).replace("%", "."), unicode(frase[1:len(frase)-2], 'utf-8').encode('latin-1')+": "+frase_proxima[1:]) ) if cap: saida.write("[[Categoria:%s|TÃtulo %02d]]\n{{-stop-}}\n\n" % (obra_utf, cap)) entrada = open('_entrada.txt', 'r') lista = open('lista.txt', 'w') saida = open('dict.txt', 'w') texto = entrada.readlines() autor = texto[0].strip() obra = texto[1].strip() notas = texto[2].strip() autor_utf = unicode(autor, 'latin-1').encode('utf-8') obra_utf = unicode(obra, 'latin-1').encode('utf-8') notas_utf = unicode(notas, 'latin-1').encode('utf-8') titulo_div_secao_utf = "" lista.write("{{navegar\n" "|obra=%s\n" "|autor=%s\n" "|notas=%s\n}}\n" "{{versão para impressão disponível}}\n" % (obra, autor, notas) ) #Gera arquivo com cabeçalho div_lista = [0] cap_anterior = 0 # Número do último Título do tomo anterior cap_atual = 0 # Número do último Título do tomo atual inicio = 3 for i in range(3, len(texto)): frase = unicode(texto[i], 'latin-1').encode('utf-8') if frase[0] == '@': div_lista[0] += 1 div_lista += [frase[1:len(frase)].strip()] if div_lista[0] > 1: fim = i gera_cabecalho(inicio, fim, div_lista[0]-2) inicio = fim cap_anterior = cap_atual cap_atual = 0 elif frase[0] == '*': cap_atual += 1 if div_lista[0]: gera_cabecalho(inicio, len(texto), div_lista[0]-1) else: gera_cabecalho(inicio, len(texto), div_lista[0]) lista.write("\n[[Categoria:]]\n" "[[Categoria:Legislação de ]]\n" "[[Categoria:%s| ]]\n" % (obra) ) entrada.close() lista.close() # Gera arquivo para impressão lista = open('lista.txt', 'r') texto=lista.readlines() lista.close() lista = open('lista.txt', 'w') saida.write("{{-start-}}\n{{subst:void|'''Anexo:Imprimir/%s'''}}{{Versão para impressão|%s}}\n" "{{navegar\n" "|obra=[[%s]]\n" "|autor=%s\n" "|notas=%s\n}}\n" "==Ãndice==\n" % ( obra_utf, obra_utf, obra_utf, autor_utf, notas_utf) ) for i in range(7, len(texto)): frase = texto[i] if frase[0] == '*' or frase[0] == '=': saida.write("%s" % unicode(frase, 'latin-1').encode('utf-8') ) for i in range(0, len(texto)): frase = texto[i] if frase[0] == '*': saida.write("{{quebra de página}}\n" "{{:%s}}\n" % unicode(frase[4:len(frase)-3], 'latin-1').encode('utf-8') ) if texto[i-1][0] ==':': lista.write("}}\n") if i+1 in range(0, len(texto)): if texto[i+1][0] ==':': lista.write("{{oculto\n|"+frase+"|") else: lista.write(frase) else: lista.write(frase) else: lista.write(frase) saida.write("{{quebra de página}}\n" "{{GFDL-print}}\n{{-stop-}}" ) lista.close() lista = open('lista.txt', 'r') texto = lista.read() #texto = re.sub("\n (.*)\n:", "\n{{oculto|* \\1\n|: ", texto) #texto = re.sub("\n\:(.*)\n*", "\n:(.*)\n}}\n*", texto) lista.close()
image2djvu.py
# -*- coding: latin-1 -*- ''' inicio: número da primeira imagem fim: número da última imagem nome_imagem: prefixo do nome da imagem Os arquivos são importados sob o nome de 'livro.djvu' ''' import os inicio = 3 fim = 151 i=inicio arquivos_djvu="" os.popen( "djvm -c livro.djvu" ) while i <= fim: arquivos_djvu=arquivos_djvu+" %s.djvu" % (i) nome_imagem="%d.jpg" % (i) cmd = "c44.exe \"%s\" \"%s.djvu\"" % (nome_imagem, i) os.popen( cmd ) print "Transformando %s em djvu." % nome_imagem os.popen( "djvm -i livro.djvu %d.djvu" %(i) ) cmd = "del \"%s.djvu\"" % (i) os.popen( cmd ) i=i+1 print "Pronto!"