Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

367
Views
Cómo leer e imprimir datos de un archivo CSV en un archivo HTML como texto

He estado tratando de leer datos del archivo .csv e imprimir los datos como texto/número en un archivo HTML. Como el siguiente ejemplo:

Los datos del archivo CSV se ven así

Ahora, quiero imprimir en HTML como este:

La edad actual del Sr. abc es 30 Años. Los números/texto en negrita y cursiva provendrán del archivo csv y tan pronto como se actualice el archivo csv, los datos en HTML también se actualizarán. Tanto el archivo csv como el HTML estarán en la misma carpeta local.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

El enfoque habitual es utilizar el lector CSV integrado de Python para analizar correctamente cada fila en una lista de valores. Se puede hacer de la siguiente manera:

 import csv with open('input.csv') as f_input, open('output.html', 'w') as f_output: csv_input = csv.reader(f_input) header = next(csv_input) # skip the header # Write the HTML header f_output.write("<html>\n<body>\n") for row in csv_input: f_output.write(f"Current age of Mr. {row[0]} is {row[1]} Years.<br>\n") # Write the HTML footer f_output.write("</body>\n</html>\n")

Para sus datos CSV de muestra, esto produciría la siguiente salida HTML:

 <html> <body> Current age of Mr. abc is 20 Years.<br> Current age of Mr. xyz is 30 Years.<br> Current age of Mr. jkl is 40 Years.<br> </body> </html>

Para crear un HTML por fila, necesitaría reorganizar un poco las cosas y también decidir un esquema de nombres para los archivos de salida. Esto agrega el nombre a cada nombre de archivo:

 import csv with open('input.csv', encoding='utf-8') as f_input: csv_input = csv.reader(f_input) header = next(csv_input) # skip the header for row in csv_input: with open(f'output_{row[0]}.html', 'w', encoding='utf-8') as f_output: # Write the HTML header f_output.write("<html>\n<body>\n") f_output.write(f"Current age of Mr. {row[0]} is {row[1]} Years.<br>\n") # Write the HTML footer f_output.write("</body>\n</html>\n")

Un enfoque alternativo sería analizar cada línea usted mismo, esto podría hacerse de la siguiente manera:

 with open('input.csv') as f_input, open('output.html', 'w') as f_output: header = next(f_input) # skip the header # Write the HTML header f_output.write("<html>\n<body>\n") for line in f_input: row = line.strip().split(',') f_output.write(f"Current age of Mr. {row[0]} is {row[1]} Years.<br>\n") # Write the HTML footer f_output.write("</body>\n</html>\n")

Sin embargo, esto no funcionaría si su columna de nombre único contuviera comas. por ejemplo "John, Smith" (que es válido en archivos CSV, las comillas se usan para ignorar las comas dentro)

about 4 years ago · Juan Pablo Isaza Report

0

El enlace a los datos CSV no es válido, por lo que es difícil de decir, pero en general:

  • lea el archivo CSV y divida la línea en variables específicas (vea cómo leer un archivo, cómo dividir el css y asignarlo en variables)
  • puede usar las variables en cadenas HTML, puede usar plantillas Jinja, pero creo que formatear las cadenas manualmente funcionará bien.

Entonces, por ejemplo, si el archivo de datos es data.csv y se ve así:

 John:30 Emily:40 Carla:25

puedes leerlo usando la rutina with open :

 with open('data.csv', 'r') as datafile: data = datafile.readlines()

Ahora tiene todos los datos en una lista de líneas, por lo que puede iterar sobre la lista y analizar los datos:

 newdata = [] for line in data: newdata.append(line.rstrip().split(':'))

Ahora debería tener todos los pareados en la lista de datos nuevos y puede usarlos como desee. Por ejemplo, para imprimir la tabla HTML, podría hacer:

 print('<table>') for couple in newdata: print(f"<tr><td>{couple[0]}</td><td>{couple[1]}</td></tr>") print('</table>')

Esto imprimirá el código HTML de la tabla. Para poder controlar el aspecto de algunos elementos mediante CSS, debe usar una etiqueta como div o span con algunas clases, como esta:

 for couple in newdata: print(f"The age of <div class="name">{couple[0]}</div> is <div class="age">{couple[1]}</div>.")

Como ya se dijo, cuando se analizan los datos, puede usar cualquier técnica que produzca el HTML: manual, plantillas Jinja, ... para guardar el archivo HTML.

about 4 years ago · Juan Pablo Isaza Report

0

Su archivo de datos de enlace no es un enlace válido. Todavía le proporcionaré una implementación de muestra que puede adaptar a su caso:

mismople.csv

 Name, Age ABC, 30 ...

Tenga un script separado en la misma carpeta para crear html basado en su csv

 csv_data=open('sample.csv','r').read().split('\n') html_body = '' for line in csv_data: line = line.split(',') html_body += f'<p>Mr. {line[0]} is {line[1]} Years</p>\n' html_output = '<html><body>\n'+html_body+'</body></html>' with open('html_out.html', 'w') as outfile: outfile.write(html_output)
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!