Saltar al contenido

¿Cómo alinear verticalmente valores separados por comas en Notepad ++?

Solución:

Puede usar el complemento TextFX: Editar> Alinear varias líneas por …

Nota: esto no funciona si el archivo es de solo lectura.

http://tomaslind.net/2016/02/18/how-to-align-columns-in-notepad/

Actualización 2019: enlace de descarga de SourceForge

Puede usar este script de complemento de Python que utiliza la biblioteca csv que se encarga de csv citado y muchas otras variantes.

Configuración:

  1. Utilice el administrador de complementos en Notepad ++ para instalar el complemento “Python script”.
  2. Complementos-> Python Script-> New Script (llámelo como CSVtoTable.py)
  3. Pegue el siguiente script de Python en el nuevo archivo y guárdelo:

CSVtoTable.py

import csv

inputlines = editor.getText().split('n')
# Get rid of empty lines
inputlines = [line.strip() for line in inputlines if line.strip()]
reader = csv.reader(inputlines, delimiter=",")
csvlist = [line for line in reader]
# transpose to calculate the column widths and create a format string which left aligns each row
t_csvlist = zip(*csvlist)
col_widths = [max([len(x) for x in t_csvlist[y]]) for y in range(len(t_csvlist))]
# To right align - change < to >
fmt_str=" ".join(['{{:<{0}}}'.format(x) for x in col_widths]) + 'rn'

text = []
for line in csvlist: 
    text.append(fmt_str.format(*line))

# open a new document and put the results in there.    
notepad.new()
editor.addText(''.join(text))
  1. Abra su archivo CSV en notepad ++
  2. Haga clic en Complementos-> Python Script-> Scripts -> (El nombre que usó en el paso 2)
  3. Debería abrirse una nueva pestaña con los datos formateados.

Actualizar (números alineados a la derecha y cadenas alineadas a la izquierda):

Use la siguiente secuencia de comandos de Python si desea alinear a la derecha los campos numéricos del CSV; mira la segunda línea del csv para determinar los tipos de campos.

import csv
import re

num_re = re.compile('[-+]?d+(.d+)?')

inputlines = editor.getText().split('n')
# Get rid of empty lines
inputlines = [line.strip() for line in inputlines if line.strip()]
reader = csv.reader(inputlines, delimiter=",")
csvlist = [line for line in reader]

# Transpose to calculate the column widths and create a format string which left aligns each row
t_csvlist = zip(*csvlist)
col_widths = [max([len(x) for x in t_csvlist[y]]) for y in range(len(t_csvlist))]

# Numbers get right aligned
type_eval_line = csvlist[1 if len(csvlist)>1 else 0]
alignment = ['>' if num_re.match(item) else '<' for item in type_eval_line]

# Compute the format string
fmt_str=" ".join(['{{:{0}{1}}}'.format(a,x) for x,a in zip(col_widths,alignment)]) + 'rn'

text = []
for line in csvlist: 
    text.append(fmt_str.format(*line))

# open a new document and put the results in there.    
notepad.new()
editor.addText(''.join(text))

Puede utilizar Buscar y reemplazar para cambiar todas las apariciones de , para ,t. Esto agregará una pestaña después de cada ,.

Sin embargo, este método tiene algunos inconvenientes:

  1. efectivamente agrega caracteres de espacio en blanco a su documento (en caso de que necesite editarlo y guardarlo).
  2. Esto funciona bien solo si la diferencia (en términos de número de caracteres) entre los números más largos y más cortos es menor que 1 tamaño de pestaña (generalmente 4 caracteres).
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *