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 (
w
modo) usando aopen()
função. - Segundo, crie um objeto gravador CSV chamando a
writer()
função docsv
módulo. - Terceiro, grave os dados no arquivo CSV chamando o método
writerow()
ouwriterows()
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 with
instruçã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.csv
arquivo:
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 DictWriter
classe do csv
mó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
DictWriter
classe passando o objeto de arquivo (f
) efieldnames
o 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
DictWriter
classe para gravar dados em um arquivo CSV.