Arquivo CSV de gravação em Python

Resumo : neste tutorial, você aprenderá como gravar dados em um arquivo CSV usando o módulo integrado csv.

Etapas para escrever um arquivo CSV

Para gravar dados em um arquivo CSV, siga estas etapas:

  • Primeiro, abra o arquivo CSV para gravação ( wmodo) usando a open()função.
  • Segundo, crie um objeto gravador CSV chamando a writer()função do csvmódulo.
  • Terceiro, grave os dados no arquivo CSV chamando o método writerow()ou writerows()do objeto gravador CSV.
  • Por fim, feche o arquivo assim que terminar de gravar os dados nele.

O código a seguir ilustra as etapas acima:

import csv

# open the file in the write mode
f = open('path/to/csv_file', 'w')

# create the csv writer
writer = csv.writer(f)

# write a row to the csv file
writer.writerow(row)

# close the file
f.close()
Linguagem de código:  Python  ( python )

Será mais curto se você usar a withinstrução para não precisar chamar o close()método para fechar explicitamente o arquivo:

import csv

# open the file in the write mode
with open('path/to/csv_file', 'w') as f:
    # create the csv writer
    writer = csv.writer(f)

    # write a row to the csv file
    writer.writerow(row)
Linguagem de código:  PHP  ( php )

Se estiver lidando com caracteres não ASCII, você precisará especificar a codificação de caracteres na open()função.

O seguinte ilustra como gravar caracteres UTF-8 em um arquivo CSV:

import csv

# open the file in the write mode
with open('path/to/csv_file', 'w', encoding='UTF8') as f:
    # create the csv writer
    writer = csv.writer(f)

    # write a row to the csv file
    writer.writerow(row)
Linguagem de código:  PHP  ( php )

Exemplo de gravação em arquivos CSV

O exemplo a seguir mostra como gravar dados no arquivo CSV:

import csv  

header = ['name', 'area', 'country_code2', 'country_code3']
data = ['Afghanistan', 652090, 'AF', 'AFG']

with open('countries.csv', 'w', encoding='UTF8') as f:
    writer = csv.writer(f)

    # write the header
    writer.writerow(header)

    # write the data
    writer.writerow(data)
Linguagem de código:  PHP  ( php )

Se você abrir o countries.csv, verá um problema: o conteúdo do arquivo tem uma linha em branco adicional entre duas linhas subsequentes:

Para remover a linha em branco, você passa o argumento da palavra-chave newline=''para a open()função da seguinte maneira:

import csv

header = ['name', 'area', 'country_code2', 'country_code3']
data = ['Afghanistan', 652090, 'AF', 'AFG']


with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.writer(f)

    # write the header
    writer.writerow(header)

    # write the data
    writer.writerow(data)Linguagem de código:  PHP  ( php )

Saída:

Gravando várias linhas em arquivos CSV

Para gravar várias linhas em um arquivo CSV de uma vez, você usa o writerows()método do objeto gravador CSV.

O seguinte usa o writerows()método para gravar várias linhas no countries.csvarquivo:

import csv

header = ['name', 'area', 'country_code2', 'country_code3']
data = [
    ['Albania', 28748, 'AL', 'ALB'],
    ['Algeria', 2381741, 'DZ', 'DZA'],
    ['American Samoa', 199, 'AS', 'ASM'],
    ['Andorra', 468, 'AD', 'AND'],
    ['Angola', 1246700, 'AO', 'AGO']
]

with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.writer(f)

    # write the header
    writer.writerow(header)

    # write multiple rows
    writer.writerows(data)
Linguagem de código:  PHP  ( php )

Gravando em arquivos CSV usando a classe DictWriter

Se cada linha do arquivo CSV for um dicionário, você poderá usar a DictWriterclasse do csvmódulo para gravar o dicionário no arquivo CSV.

O exemplo ilustra como usar a classe DictWriter para gravar dados em um arquivo CSV:

import csv

# csv header
fieldnames = ['name', 'area', 'country_code2', 'country_code3']

# csv data
rows = [
    {'name': 'Albania',
    'area': 28748,
    'country_code2': 'AL',
    'country_code3': 'ALB'},
    {'name': 'Algeria',
    'area': 2381741,
    'country_code2': 'DZ',
    'country_code3': 'DZA'},
    {'name': 'American Samoa',
    'area': 199,
    'country_code2': 'AS',
    'country_code3': 'ASM'}
]

with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(rows)
Linguagem de código:  PHP  ( php )

Como funciona.

  • Primeiro, defina variáveis ​​que contêm os nomes dos campos e linhas de dados do arquivo CSV.
  • Em seguida, abra o arquivo CSV para gravação chamando a open()função.
  • Em seguida, crie uma nova instância da DictWriterclasse passando o objeto de arquivo ( f) e fieldnameso argumento para ela.
  • Depois disso, escreva o cabeçalho do arquivo CSV chamando o writeheader()método.
  • Finalmente, grave linhas de dados no arquivo CSV usando o writerows()método.

Resumo

  • Use o CSV Writer ou a DictWriterclasse para gravar dados em um arquivo CSV.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *