Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk membaca dan menulis fail csv dalam Python

Bagaimana untuk membaca dan menulis fail csv dalam Python

PHPz
PHPzke hadapan
2023-06-26 13:09:596293semak imbas

Untuk menulis kepada CSV dalam Python, gunakan modul csv Python.

Sebagai contoh, mari tulis senarai rentetan pada fail CSV baharu:

import csv
data = ["This", "is", "a", "Test"]
with open('example.csv', 'w') as file:
    writer = csv.writer(file)
    writer.writerow(data)

Jadi anda akan melihat fail bernama example.csv dalam folder semasa anda.

4 Langkah Menulis CSV dalam Python

Untuk menulis fail CSV dalam Python:

1

Buka fail CSV dalam mod penulisan. Ini berlaku menggunakan fungsi open(). Berikan laluan ke fail sebagai hujah pertama. Tentukan mod sebagai hujah kedua ("r" untuk baca, "w" untuk tulis). 2.
Buat objek penulis CSV. Untuk melakukan ini, cipta objek writer() modul csv dan hantar fail terbuka sebagai hujahnya. 3
Tulis data ke fail CSV. Gunakan fungsi writerow() objek penulis untuk menulis data ke fail CSV. 4.
Tutup fail CSV, ​​gunakan kaedah close() fail.

Berikut ialah contoh yang menggambarkan proses ini:

import csv
# 1.
file = open('test.csv', 'w')
# 2.
writer = csv.writer(file)
# 3.
data = ["This", "is", "a", "Test"]
writer.writerow(data)
# 4.
file.close()

Kod ini mencipta fail yang dipanggil test.csv dalam folder semasa.

Jika fail yang dinyatakan tidak wujud, fungsi open() akan membuka fail baharu. Jika ya, fail sedia ada dibuka.

Lakaran

Untuk memendekkan masa menulis kepada CSV, gunakan pernyataan

dengan untuk membuka fail. Dengan cara ini anda tidak perlu risau tentang menutup fail sendiri. dengan akan mengendalikan bahagian itu secara automatik.

Contoh:

import csv
# 1. step
with open('test.csv', 'w') as file:
    # 2. step
    writer = csv.writer(file)
    # 3. step
    data = ["This", "is", "a", "Test"]
    writer.writerow(data)

Ini akan mencipta fail CSV baharu yang dipanggil test.csv dalam folder semasa dan menulis senarai rentetan ke dalamnya.

Cara menulis aksara bukan ASCII ke CSV dalam Python

Secara lalai, anda tidak boleh menulis aksara bukan ASCII pada fail CSV.

Untuk menyokong penulisan nilai bukan ASCII ​​pada fail CSV, tentukan pengekodan aksara sebagai parameter ketiga dalam panggilan open().

with open('PATH_TO_FILE.csv', 'w', encoding="UTF8")

Selebihnya proses mengikut langkah yang anda pelajari sebelum ini.

Cara membuat pengepala untuk fail CSV

Setakat ini, anda telah mencipta fail CSV yang tidak mempunyai struktur.

Dalam Python, anda boleh menulis pengepala untuk mana-mana fail CSV menggunakan fungsi

writerow() untuk menulis sebarang data ke CSV.

Contoh: Mari buat contoh fail CSV yang mengandungi data pelajar.

Untuk membina data dengan cekap, pengepala perlu dibuat untuk pelajar pada permulaan fail CSV dan dimasukkan. Anda boleh mengikuti langkah yang sama seperti sebelum ini untuk menulis data pada fail CSV dan anda sudah selesai.

Berikut ialah kod:

import csv
# Define the structure of the data
student_header = ['name', 'age', 'major', 'minor']
# Define the actual data
student_data = ['Jack', 23, 'Physics', 'Chemistry']
# 1. Open a new CSV file
with open('students.csv', 'w') as file:
    # 2. Create a CSV writer
    writer = csv.writer(file)
    # 3. Write data to the file
    writer.writerow(student_header)
    writer.writerow(student_data)

Ini akan mencipta fail students.csv ke dalam folder yang sedang anda kerjakan. Fail baharu akan kelihatan seperti ini:

Bagaimana untuk membaca dan menulis fail csv dalam Python

Cara menulis berbilang baris pada fail CSV dalam Python

Dalam Python, anda boleh menulis berbilang baris pada fail CSV secara serentak menggunakan fungsi writerows() penulis CSV.

Contoh. Katakan anda ingin menulis berbilang baris data ke fail CSV. Sebagai contoh, anda mungkin mempunyai senarai pelajar dan bukannya seorang sahaja.

Untuk menulis berbilang baris data ke CSV, gunakan kaedah writerows().

Berikut ialah contoh:

import csv
student_header = ['name', 'age', 'major', 'minor']
student_data = [
    ['Jack', 23, 'Physics', 'Chemistry'],
    ['Sophie', 22, 'Physics', 'Computer Science'],
    ['John', 24, 'Mathematics', 'Physics'],
    ['Jane', 30, 'Chemistry', 'Physics']
]
with open('students.csv', 'w') as file:
    writer = csv.writer(file)
    writer.writerow(student_header)
    # Use writerows() not writerow()
    writer.writerows(student_data)

Ini akan menjana fail CSV baharu seperti yang ditunjukkan di bawah:

Bagaimana untuk membaca dan menulis fail csv dalam Python

Cara menulis kamus ke fail CSV dalam Python

Menulis kamus dalam Python boleh dicapai menggunakan DictWriter objek Menulis fail CSV merangkumi tiga langkah berikut:

1 Gunakan objek DictWriter modul csv dan nyatakan nama medan di dalamnya.

2. Gunakan kaedah writeheader() untuk mencipta pengepala ke dalam fail CSV.

3 Gunakan kaedah writerows() untuk menulis data kamus pada fail.

Contoh: Mari tulis kamus data pelajar ke fail CSV.

import csv
student_header = ['name', 'age', 'major', 'minor']
student_data = [
    {'name': 'Jack', 'age': 23, 'major': 'Physics', 'minor': 'Chemistry'},
    {'name': 'Sophie', 'age': 22, 'major': 'Physics', 'minor': 'Computer Science'},
    {'name': 'John', 'age': 24, 'major': 'Mathematics', 'minor': 'Physics'},
    {'name': 'Jane', 'age': 30, 'major': 'Chemistry', 'minor': 'Physics'}
]
with open('students.csv', 'w') as file:
    # Create a CSV dictionary writer and add the student header as field names
    writer = csv.DictWriter(file, fieldnames=student_header)
    # Use writerows() not writerow()
    writer.writeheader()
    writer.writerows(student_data)

Kini hasilnya sama dengan fail students.csv daripada contoh sebelumnya:

Bagaimana untuk membaca dan menulis fail csv dalam Python

Kesimpulan

CSV atau nilai dipisahkan koma adalah format fail yang biasa digunakan. Ia terdiri daripada nilai yang biasanya dipisahkan dengan koma.

Untuk menulis CSV dalam Python, anda perlu menggunakan modul csv dengan mengikuti langkah berikut:

1. Buka fail CSV dalam mod tulis.

2. Cipta objek penulis CSV.

3. Tulis data ke fail CSV.

4. Tutup fail CSV.

Ini adalah contoh praktikal.

import csv
data = ["This", "is", "a", "Test"]
with open('example.csv', 'w') as file:
    writer = csv.writer(file)
    writer.writerow(data)

Selamat mengekod!

Atas ialah kandungan terperinci Bagaimana untuk membaca dan menulis fail csv dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam