Un archivo de valores separados por tabuladores (TSV) es un formato de texto simple para almacenar e intercambiar datos en una estructura tabular, como una tabla de base de datos o una hoja de cálculo. Las filas de la tabla coinciden con las líneas del archivo de texto. Cada valor de campo en un registro está separado del siguiente por un carácter de tabulación. Como resultado, el formato TSV es un subconjunto del formato DSV más grande (valores separados por delimitadores) .
En este artículo, discutiremos cómo convertir un archivo TSV a Excel usando Python. Aquí usaremos el módulo python XlsxWriter . Se utiliza para crear archivos XLSX. Este módulo no viene integrado con python y, por lo tanto, debe instalarse y cargarse explícitamente en el espacio de trabajo. Para instalar este tipo, escriba el siguiente comando en la terminal.
pip install XlsxWriter
Acercarse
- Importe primero el módulo CSV, que es un módulo incorporado que no tendremos que instalar. Estamos usando el módulo csv ya que tsv es bastante similar a csv; la única diferencia es que tsv usa espacios de tabulación en lugar de comas.
- También importaremos nuestro módulo XlsxWriter, que acabamos de instalar. El propósito principal del módulo XlsxWriter es escribir archivos Excel XLSX.
- Después de importar ambos módulos, crearemos una variable con la ruta del archivo de entrada y su nombre, así como el nombre deseado y la ruta del archivo de salida.
- Para construir un libro de trabajo, utilizaremos la clase Workbook del módulo XlsxWriter. La clase Workbook es la clase principal a la que puede acceder el módulo XlsxWriter y es la única que necesitará para crear una instancia directamente. La clase Workbook representa la hoja de cálculo completa tal como aparece en Excel y el archivo de Excel tal como se escribe en el disco internamente.
- La variable que definimos como archivo de salida se pasará a la clase como parámetro.
Sintaxis:
workbook_object = WorkBook(output_filename)
- El nombre del objeto del libro de trabajo puede ser cualquier cosa, como el nombre de cualquier variable. Para agregar una hoja de trabajo a este libro, usaremos el método add_worksheet().
- Lo único que queda después de esto es leer los datos de nuestro archivo tsv e ingresarlos en nuestra hoja de cálculo. Usaremos nuestro módulo csv, específicamente su función de lector para esto, y tenga en cuenta que estaremos leyendo un archivo con el espacio de tabulación delimitador (‘\ t’).
Sintaxis:
con open( tsv_file , ‘r’) como archivo csv:
… read_tsv = csv.reader(archivocsv, delimitador =’\t’)
read_tsv = csv.reader(abrir( tsv_file , ‘r’), delimitador=’\t’)
- Ahora revisaremos el archivo tsv fila por fila y escribiremos los datos en la hoja usando el método write row(). El método requiere que los datos se escriban como un parámetro, así como el número de fila y columna de la celda.
Sintaxis:
worksheet_object.write_row(row, col, data)
- Finalmente, usaremos el método close() para cerrar el libro de trabajo y escribir un archivo XLSX.
Sintaxis:
workbook_object.close()
Ejemplo 1: convertir TSV a XLS
TSV utilizado:
Código:
Python3
# Importing modules import csv from xlsxwriter.workbook import Workbook # Input file path tsv_file = 'worldcup2014.tsv' # Output file path xlsx_file = 'worldcup2014.xlsx' # Creating an XlsxWriter workbook object and adding # a worksheet. workbook = Workbook(xlsx_file) worksheet = workbook.add_worksheet() # Reading the tsv file. read_tsv = csv.reader(open(tsv_file, 'r', encoding='utf-8'), delimiter='\t') # We'll use a loop with enumerate to pass the data # together with its row position number, which we'll # use as the cell number in the write_row() function. for row, data in enumerate(read_tsv): worksheet.write_row(row, 0, data) # Closing the xlsx file. workbook.close()
Producción:
Ejemplo 2: convertir tsv a xls
TSV utilizado:
Código:
Python3
# Importing modules import csv from xlsxwriter.workbook import Workbook # Input file path tsv_file = 'hospital.tsv' # Output file path xlsx_file = 'hospital.xlsx' # Creating an XlsxWriter workbook object and # adding a worksheet. workbook = Workbook(xlsx_file) worksheet = workbook.add_worksheet() # Reading the tsv file. read_tsv = csv.reader(open(tsv_file, 'r', encoding='utf-8'), delimiter='\t') # We'll use a loop with enumerate to pass the # data together with its row position number, which # we'll use as the cell number in the write_row() # function. for row, data in enumerate(read_tsv): worksheet.write_row(row, 0, data) # Closing the xlsx file. workbook.close()
Producción: