Panduan kepada Modul CSV Python

Barbara Streisand
Lepaskan: 2024-10-11 10:17:29
asal
265 orang telah melayarinya

Guide to Python

Bekerja dengan data merupakan bahagian pengaturcaraan yang tidak dapat dielakkan, dan sebagai seseorang yang sering mendapati diri mereka separas lutut dalam pelbagai format fail, saya sentiasa menghargai cara Python memudahkan keseluruhan proses.

Satu format fail yang kerap muncul, terutamanya dalam analisis data, ialah fail CSV.

CSV, atau Nilai Dipisahkan Koma, ialah format pertukaran data yang popular kerana kesederhanaannya.

Nasib baik, Python dilengkapi dengan modul terbina dalam yang dipanggil csv, yang menjadikan kerja dengan fail ini sangat cekap.

Dalam artikel ini, saya akan membahagikan cara modul csv berfungsi dalam Python, daripada penggunaan asas kepada teknik yang lebih maju yang boleh menjimatkan banyak masa anda semasa memproses data.


Apakah Fail CSV?

Sebelum menyelami modul csv, mari mulakan dengan pemahaman asas tentang apa itu fail CSV.

Fail CSV pada asasnya ialah fail teks biasa di mana setiap baris mewakili baris data dan setiap nilai dipisahkan dengan koma (atau kadangkala pembatas lain seperti tab).

Berikut ialah contoh ringkas tentang rupanya:

Name,Age,Occupation
Alice,30,Engineer
Bob,25,Data Scientist
Charlie,35,Teacher
Salin selepas log masuk

Mengapa Modul csv?

Anda mungkin tertanya-tanya mengapa anda memerlukan modul csv sedangkan fail CSV hanyalah fail teks yang secara teorinya boleh dibaca menggunakan kaedah pengendalian fail standard Python.

Walaupun ini benar, fail CSV boleh mempunyai kerumitan—seperti koma terbenam, pemisah baris dalam sel dan pembatas berbeza—yang sukar dikendalikan secara manual.

Modul csv merumuskan semua ini, membolehkan anda menumpukan pada data anda.


Membaca Fail CSV

Mari beralih ke kod.

Operasi paling biasa yang akan anda lakukan pada fail CSV ialah membaca kandungannya.

Fungsi csv.reader() dalam modul ialah alat yang mudah digunakan untuk itu.

Berikut ialah panduan langkah demi langkah tentang cara melakukannya.

Bacaan CSV Asas

import csv

# Open a CSV file
with open('example.csv', 'r') as file:
    reader = csv.reader(file)

    # Iterate over the rows
    for row in reader:
        print(row)
Salin selepas log masuk

Ini ialah cara paling mudah untuk membaca fail CSV.

Csv.reader() mengembalikan lelaran, di mana setiap lelaran memberikan anda senarai yang mewakili baris fail.

Mengendalikan Pengepala
Kebanyakan fail CSV disertakan dengan pengepala di baris pertama, seperti nama lajur.

Jika anda tidak memerlukan pengepala ini, anda hanya boleh melangkau baris pertama semasa mengulang:

import csv

with open('example.csv', 'r') as file:
    reader = csv.reader(file)

    # Skip header
    next(reader)

    for row in reader:
        print(row)
Salin selepas log masuk

Kadangkala, saya bekerja dengan fail yang mengandungi gabungan data yang berguna dan tidak berkaitan, dan saya mendapati diri saya melangkau baris berdasarkan lebih daripada sekadar pengepala.

Anda boleh melakukan ini dengan mudah dalam gelung for.

DictReader: Cara yang Lebih Intuitif untuk Membaca Fail CSV
Jika fail CSV anda mempunyai pengepala, csv.DictReader() ialah satu lagi pilihan hebat yang membaca setiap baris sebagai kamus, dengan kuncinya ialah nama lajur:

import csv

with open('example.csv', 'r') as file:
    reader = csv.DictReader(file)

    for row in reader:
        print(row)
Salin selepas log masuk

Pendekatan ini boleh menjadikan kod anda lebih mudah dibaca dan intuitif, terutamanya apabila bekerja dengan set data yang besar.

Sebagai contoh, mengakses row['Name'] terasa lebih jelas daripada berurusan dengan akses berasaskan indeks seperti row[0].


Menulis ke Fail CSV

Setelah anda membaca dan memproses data anda, kemungkinan besar anda akan mahu menyimpan atau mengeksportnya.

Fungsi csv.writer() ialah alat pilihan anda untuk menulis ke fail CSV.

Penulisan CSV Asas

import csv

# Data to be written
data = [
    ['Name', 'Age', 'Occupation'],
    ['Alice', 30, 'Engineer'],
    ['Bob', 25, 'Data Scientist'],
    ['Charlie', 35, 'Teacher']
]

# Open a file in write mode
with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)

    # Write data to the file
    writer.writerows(data)

Salin selepas log masuk

Fungsi writer.writerows() mengambil senarai senarai dan menulisnya ke fail CSV, di mana setiap senarai dalam mewakili satu baris data.

DictWriter: Cara Lebih Bersih untuk Menulis Fail CSV
Sama seperti kami mempunyai DictReader untuk membaca fail CSV ke dalam kamus, kami mempunyai DictWriter untuk menulis kamus ke CSV.

Kaedah ini amat berguna apabila anda ingin menentukan nama lajur anda secara eksplisit.

import csv

# Data as list of dictionaries
data = [
    {'Name': 'Alice', 'Age': 30, 'Occupation': 'Engineer'},
    {'Name': 'Bob', 'Age': 25, 'Occupation': 'Data Scientist'},
    {'Name': 'Charlie', 'Age': 35, 'Occupation': 'Teacher'}
]

# Open file for writing
with open('output.csv', 'w', newline='') as file:
    fieldnames = ['Name', 'Age', 'Occupation']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    # Write the header
    writer.writeheader()

    # Write the data
    writer.writerows(data)
Salin selepas log masuk

Menggunakan DictWriter, anda mendapat antara muka yang bagus dan bersih untuk menulis kamus ke CSV sambil memastikan kod anda mudah dibaca dan ringkas.


Menyesuaikan Pembatas

Secara lalai, modul CSV menggunakan koma untuk memisahkan nilai, tetapi kadangkala anda mungkin menggunakan fail yang menggunakan pembatas lain, seperti tab atau koma bernoktah.

Modul csv menyediakan cara mudah untuk mengendalikan kes ini dengan menyatakan hujah pembatas.

import csv

with open('example_tab.csv', 'r') as file:
    reader = csv.reader(file, delimiter='\t')

    for row in reader:
        print(row)
Salin selepas log masuk

Saya telah menjumpai fail CSV yang menggunakan koma bernoktah dan bukannya koma—biasanya daripada sumber Eropah—dan berasa selesa untuk mengetahui bahawa modul csv Python mengendalikan perkara ini dengan mudah.

Sama ada koma, tab atau sebarang pembatas lain, modul csv telah membantu anda.


Mengendalikan Data Kompleks

Bagaimana jika data anda mengandungi koma dalam medan, petikan atau pemisah baris?

Modul CSV secara automatik mengendalikan kes sedemikian dengan menggunakan mekanisme petikan.

Anda juga boleh mengawal cara petikan berfungsi menggunakan parameter petikan.

import csv

data = [
    ['Name', 'Occupation', 'Description'],
    ['Alice', 'Engineer', 'Works on, "cutting-edge" technology'],
    ['Bob', 'Data Scientist', 'Loves analyzing data.']
]

with open('complex.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_ALL)
    writer.writerows(data)
Salin selepas log masuk

In this example, QUOTE_ALL ensures that every field is wrapped in quotes.

Other quoting options include csv.QUOTE_MINIMAL, csv.QUOTE_NONNUMERIC, and csv.QUOTE_NONE, giving you full control over how your CSV data is formatted.


Conclusion

Over the years, I’ve come to rely on the CSV format as a lightweight, efficient way to move data around, and Python’s csv module has been a trusty companion in that journey.

Whether you’re dealing with simple spreadsheets or complex, multi-line data fields, this module makes the process feel intuitive and effortless.

While working with CSVs may seem like a mundane task at first, it’s a gateway to mastering data manipulation.

In my experience, once you’ve conquered CSVs, you'll find yourself confidently tackling larger, more complex formats like JSON or SQL databases. After all, everything starts with the basics.

Atas ialah kandungan terperinci Panduan kepada Modul CSV Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan