Rumah >pembangunan bahagian belakang >Tutorial Python >Ringkasan pengetahuan Python: menulis dan membaca fail csv
Artikel ini membawa anda pengetahuan yang berkaitan tentang python, yang terutamanya memperkenalkan isu yang berkaitan dengan menulis dan membaca fail csv ialah format teks yang biasa digunakan, digunakan untuk Menyimpan data jadual, termasuk nombor atau aksara, I semoga ianya bermanfaat kepada semua.
Pembelajaran yang disyorkan: tutorial python
CSV (Nilai Dipisahkan Koma), iaitu, nilai dipisahkan koma (juga dikenali sebagai nilai dipisahkan aksara, Kerana pembatas boleh menjadi selain daripada koma), ia ialah format teks yang biasa digunakan untuk menyimpan data jadual, termasuk nombor atau aksara. Banyak program akan menemui fail dalam format csv semasa memproses data. Python datang dengan modul csv, yang digunakan khas untuk mengendalikan pembacaan fail csv
Dengan mencipta objek penulis, dua kaedah digunakan terutamanya. Satu ialah writerow, yang menulis baris. Yang lain ialah writerows untuk menulis berbilang baris
Gunakan DictWriter untuk menulis data ke dalamnya menggunakan kamus
Mari kita bincangkan kaedah penulisan pertama: menulis dengan mencipta objek penulis (menulis satu baris pada satu masa)
Langkah-langkah : 1. Buat data dan pengepala 2. Buat objek penulis 3. Tulis tajuk 4. Traverse senarai dan tulis setiap baris data ke dalam csv
Kodnya adalah seperti berikut:
import csv person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8') as file_obj: # 1:创建writer对象 writer = csv.writer(file_obj) # 2:写表头 writer.writerow(header) # 3:遍历列表,将每一行的数据写入csv for p in person: writer.writerow(p)
Selepas menulis, fail person.csv akan muncul dalam direktori semasa Klik kanan tunjukkan Open person.csv in Explorer untuk melihat
Selepas membukanya, anda akan mendapati bahawa data bertulis akan mempunyai pemisah baris di tengah
tanpa diduga: Jadi bagaimana kita harus menyelesaikan masalah ini
penggodam: Ia sangat mudah
Hanya tambahkan parameter semasa menulis data newline=''Dalam. perintah Elakkan pemisah baris daripada ditulis
Kod yang diperbetulkan adalah seperti berikut:
import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj: # 创建对象 writer = csv.writer(file_obj) # 写表头 writer.writerow(header) # 遍历,将每一行的数据写入csv for p in person: writer.writerow(p)
✅Dengan mencipta objek penulis (menulis berbilang baris sekaligus)
Langkah : 1. Cipta data dan pengepala 2. Cipta objek penulis 3. Tulis pengepala 4. Masukkan data yang ingin anda proses dalam baris tulis
import csv# 数据person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj: # 创建对象 writer = csv.writer(file_obj) # 写表头 writer.writerow(header) # 3.写入数据(一次性写入多行) writer.writerows(person)
Hasil penulisan adalah seperti berikut:
Nota: Gunakan kamus untuk menulis Sila ambil perhatian bahawa format data yang diluluskan mestilah kamus
Jika ia bukan kamus, ralat akan dilaporkan
AttributeError: objek 'tuple' tidak mempunyai 'kunci' atribut
Langkah 1. Cipta data dan pengepala ( Data mesti dalam format kamus ) 2. Cipta objek DictWriter 3. Tulis pengepala 4. Tulis data
import csv# 数据person = [ {'name': 'xxx', 'age': 18, 'height': 193}, {'name': 'yyy', 'age': 18, 'height': 182}, {'name': 'zzz', 'age': 19, 'height': 185},]# 表头header = ['name', 'age', 'height']with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj: # 1.创建DicetWriter对象 dictWriter = csv.DictWriter(file_obj, header) # 2.写表头 dictWriter.writeheader() # 3.写入数据(一次性写入多行) dictWriter.writerows(person)
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj: # 1.创建reader对象 reader = csv.reader(file_obj) print(reader)
akan dikembalikan jika dicetak terus objek csv.reader, maka anda perlu melintasi senarai
<_csv.reader object di>
Betulkan kod seperti berikut:
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj: # 1.创建reader对象 reader = csv.reader(file_obj) # 2.遍历进行读取数据 for r in reader: print(r)
Keputusan bacaan adalah seperti berikut:
['name', 'age', 'height']['xxx', '18', '193']['yyy', '18', '182']['zzz', '19', '185']
Jika anda ingin mencetak nilai tertentu dalam senarai, anda boleh menggunakan cetakan indeks
print(r[0])
name xxx yyy zzz
import csvwith open('person.csv', 'r', encoding='utf-8') as file_obj: # 1.创建reader对象 dictReader = csv.DictReader(file_obj) # 2.遍历进行读取数据 for r in dictReader: print(r)
Hasil yang dikembalikan adalah seperti berikut:
OrderedDict([('name', 'xxx'), ('age', '18'), ('height', '193')])OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])
Pada masa ini, jika kita ingin mendapatkan nilai tertentu, kita perlu menentukan kunci untuk mencari nilai
print(r['name'])
xxx yyy zzz
Di atas adalah penulisan dan pembacaan fail csv dalam tutorial python asas Jika anda mempunyai sebarang cadangan untuk penambahbaikan, sila tinggalkan mesej kawasan komen~
Pembelajaran yang disyorkan: tutorial python
Atas ialah kandungan terperinci Ringkasan pengetahuan Python: menulis dan membaca fail csv. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!