Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk membaca dan menulis fail csv dalam Python
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:1Berikut ialah contoh yang menggambarkan proses ini: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.
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. LakaranUntuk 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 PythonSecara 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 CSVSetakat 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:
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:
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:
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!