0. Objetivo
Se busca leer un archivo de texto y que cada linea se guarde en un archivo de Word como un párrafo. Librería para manejar archivos de Word con python.
1. importar algunas cosas
from docx import Document
import sys
2. Abrir el archivo de texto y guardarlo en una lista
def openTxt(filename):
global txtlst
try:
f = open (filename)
txtlst = f.readlines()
f.close()
return 0
except:
return -1
3a. Crear un documento docx
global txtlst
doc = Document()
for lin in txtlst:
try:
doc.add_paragraph(lin[:-1].decode("utf-8"))
except:
print "Error en linea:",lin[:-1]
return -2
3b. Guardar el documento docx
try:
doc.save(filename)
except:
print "Error al guardar",filename
return -3
4.Ponerlo todo junto
#! /usr/bin/python
# -*- coding: utf8 -*-
from docx import Document
import sys
def mensajeUso():
print "Uso:"
print "\ttxt2docx <file.txt> <file.docx>"
def openTxt(filename):
global txtlst
try:
f = open (filename)
txtlst = f.readlines()
f.close()
return 0
except:
return -1
def savedocx (filename):
global txtlst
doc = Document()
for lin in txtlst:
try:
doc.add_paragraph(lin[:-1].decode("utf-8"))
except:
print "Error en linea:",lin[:-1]
return -2
try:
doc.save(filename)
except:
print "Error al guardar",filename
return -3
if __name__ == "__main__":
if (len (sys.argv) != 3):
mensajeUso()
sys.exit (1)
result = openTxt (sys.argv[1])
if (result !=0):
sys.exit(result)
print "Lines:",len(txtlst)
result = savedocx(sys.argv[2])
#if (result==0):
# print "Exito"
sys.exit(result)
Referencias
How to work with DOCX in Python
No hay comentarios:
Publicar un comentario