Escrever lista para CSV em Python

Azaz Farooq 30 janeiro 2023
  1. Escrever lista para o CSV em Python Utilizando o csv.writer() Método
  2. Escrever lista para CSV em Python utilizando o método de aspas
  3. Escrever lista para CSV em Python utilizando o método pandas
  4. Escreve a lista para CSV em Python utilizando o método NumPy
Escrever lista para CSV em Python

Um ficheiro CSV pode armazenar os dados num formato tabular. Estes dados são um texto simples; cada linha de dados é chamada o registo, e cada um pode ser separado com vírgulas.

Este artigo irá discutir os diferentes métodos para escrever uma lista para o CSV em Python.

Escrever lista para o CSV em Python Utilizando o csv.writer() Método

Vamos primeiro importar o módulo csv:

import csv

Suponhamos que levamos as seguintes entradas para escrever num ficheiro CSV.

RollNo, Name, Subject
1, ABC, Economics
2, TUV, Arts
3, XYZ, Python

Agora, o código completo do exemplo é o seguinte:

import csv

with open("students.csv", "w", newline="") as student_file:
    writer = csv.writer(student_file)
    writer.writerow(["RollNo", "Name", "Subject"])
    writer.writerow([1, "ABC", "Economics"])
    writer.writerow([2, "TUV", "Arts"])
    writer.writerow([3, "XYZ", "Python"])

Se executar os códigos acima, o ficheiro students.csv será criado, em termos de linha, no directório actual com as entradas que estão presentes no código. A função csv.writer() irá criar o objecto writer(), e o comando writer.writerow() irá inserir as entradas em linha no ficheiro CSV.

Escrever lista para CSV em Python utilizando o método de aspas

Neste método, veremos como podemos escrever valores em ficheiro CSV com citações. O código completo do exemplo é o seguinte:

import csv

list = [["RN", "Name", "GRADES"], [1, "ABC", "A"], [2, "TUV", "B"], [3, "XYZ", "C"]]
with open("studentgrades.csv", "w", newline="") as file:
    writer = csv.writer(file, quoting=csv.QUOTE_ALL, delimiter=";")
    writer.writerows(list)

O ficheiro studentgrades.csv será criado no directório actual. A função csv.QUOTE_ALL() coloca aspas duplas em todas as entradas, utilizando um delimitador ; para separação.

Resultado:

RN;"Name";"GRADES"
1;"ABC";"A"
2;"TUV";"B"
3;"XYZ";"C"

Escrever lista para CSV em Python utilizando o método pandas

Este método utiliza a biblioteca Pandas, que possui um quadro de dados completo. Se não tiver esta biblioteca instalada no seu PC, pode utilizar uma ferramenta online chamada Google Colab.

O código completo do exemplo é o seguinte:

import pandas as pd

name = ["ABC", "TUV", "XYZ", "PQR"]
degree = ["BBA", "MBA", "BSC", "MSC"]
score = [98, 90, 88, 95]
dict = {"name": name, "degree": degree, "score": score}
df = pd.DataFrame(dict)
df.to_csv("test.csv")

Resultado:

	name	degree	score
0	ABC	    BBA	     98
1	TUV	    MBA	     90
2	XYZ	    BSC	     88
3	PQR	    MSC	     95

Este método grava a lista Python num ficheiro CSV como uma moldura de dados.

Escreve a lista para CSV em Python utilizando o método NumPy

Este método utiliza a biblioteca NumPy para guardar uma lista num ficheiro CSV em Python. O código completo do exemplo é o seguinte:

import numpy as np

list_rows = [
    ["ABC", "COE", "2", "9.0"],
    ["TUV", "COE", "2", "9.1"],
    ["XYZ", "IT", "2", "9.3"],
    ["PQR", "SE", "1", "9.5"],
]
np.savetxt("numpy_test.csv", list_rows, delimiter=",", fmt="% s")

A função savetxt() da biblioteca NumPy irá escrever um ficheiro CSV a partir da lista Python.

Resultado:

ABC	 COE	2	9
TUV	 COE	2	9.1
XYZ	 IT	2	9.3
PQR	 SE	1	9.5

Artigo relacionado - Python CSV

Artigo relacionado - Python List