CSV [Giá trị được phân tách bằng dấu phẩy] là định dạng dữ liệu nhập và xuất rất phổ biến được sử dụng trong bảng tính và cơ sở dữ liệu. Mỗi dòng trong tệp CSV là một bản ghi dữ liệu. Mỗi bản ghi bao gồm một hoặc nhiều trường, được phân tách bằng dấu phẩy. Mặc dù CSV là một định dạng dữ liệu rất đơn giản, nhưng có thể có nhiều điểm khác biệt, chẳng hạn như các dấu phân cách khác nhau, dòng mới hoặc ký tự trích dẫn
Mô-đun csv Python
Mô-đun
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]2 triển khai các lớp để đọc và ghi dữ liệu dạng bảng ở định dạng CSV. Các đối tượng
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]4 và
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]5 đọc và viết các đối tượng của mô-đun
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]2. Các lập trình viên cũng có thể đọc và ghi dữ liệu ở dạng từ điển bằng cách sử dụng các lớp
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]6 và
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]7
Bảng sau đây hiển thị các phương thức csv của Python
Phương thứcMô tảcsv. trình đọc trả về một đối tượng trình đọc lặp qua các dòng của tệp CSVcsv. nhà văn trả về một đối tượng nhà văn ghi dữ liệu vào CSV filecsv. register_dialectregisters một phương ngữ CSVcsv. unregister_dialectunregisters một phương ngữ CSVcsv. get_dialecttrả về một phương ngữ có têncsv đã cho. list_dialectstrả về tất cả các phương ngữ đã đăng kýcsv. field_size_limittrả về kích thước trường tối đa hiện tại mà trình phân tích cú pháp cho phépSử dụng mô-đun csv Python
import csv
Để sử dụng mô-đun Python CSV, chúng tôi nhập
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]2
Phương thức
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]9 trả về một đối tượng trình đọc lặp lại qua các dòng trong tệp CSV đã cho
$ cat numbers.csv 16,6,4,12,81,6,71,6
Tệp
reader = csv.reader[f]0 chứa các số
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]
Trong ví dụ mã, chúng tôi mở
reader = csv.reader[f]0 để đọc và đọc nội dung của nó
reader = csv.reader[f]
Chúng tôi nhận được đối tượng
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]4
for row in reader: for e in row: print[e]
Với hai vòng lặp for, chúng tôi lặp lại dữ liệu
$ ./read_csv.py 16 6 4 12 81 6 71 6
Trình đọc CSV Python với dấu phân cách khác nhau
Phương thức
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]9 cho phép sử dụng một dấu phân cách khác với thuộc tính
reader = csv.reader[f]4 của nó
$ cat items.csv pen|cup|bottle chair|book|tablet
reader = csv.reader[f]5 chứa các giá trị được phân tách bằng '. ' tính cách
#!/usr/bin/python import csv f = open['items.csv', 'r'] with f: reader = csv.reader[f, delimiter="|"] for row in reader: for e in row: print[e]
Ví dụ về mã đọc và hiển thị dữ liệu từ tệp CSV sử dụng '. ' dấu phân cách
$ ./read_csv2.py pen cup bottle chair book tablet
Lớp
reader = csv.reader[f]6 hoạt động như một trình đọc thông thường nhưng ánh xạ thông tin đã đọc vào từ điển. Các khóa cho từ điển có thể được chuyển vào bằng tham số
reader = csv.reader[f]7 hoặc được suy ra từ hàng đầu tiên của tệp CSV
$ cat values.csv min,avg,max 1, 5.5, 10 2, 3.5, 5
Dòng đầu tiên của tệp bao gồm các khóa từ điển
$ cat numbers.csv 16,6,4,12,81,6,71,60
Ví dụ đọc các giá trị từ tệp
reader = csv.reader[f]8 bằng cách sử dụng
reader = csv.reader[f]6
$ cat numbers.csv 16,6,4,12,81,6,71,61
Hàng là một từ điển Python và chúng tôi tham chiếu dữ liệu bằng các khóa
Người viết CSV Python
Phương thức
for row in reader: for e in row: print[e]0 trả về một đối tượng nhà văn chuyển đổi dữ liệu của người dùng thành các chuỗi được phân tách trên đối tượng giống như tệp đã cho
$ cat numbers.csv 16,6,4,12,81,6,71,62
Tập lệnh viết số vào tệp
for row in reader: for e in row: print[e]1. Phương thức
for row in reader: for e in row: print[e]2 ghi một hàng dữ liệu vào tệp được chỉ định
$ cat numbers.csv 16,6,4,12,81,6,71,63
Có thể ghi tất cả dữ liệu trong một lần chụp. Phương thức
for row in reader: for e in row: print[e]3 ghi tất cả các hàng đã cho vào tệp CSV
$ cat numbers.csv 16,6,4,12,81,6,71,64
Ví dụ mã viết ba hàng số vào tệp bằng phương thức
for row in reader: for e in row: print[e]3
Python CSV DictWriter
Lớp
for row in reader: for e in row: print[e]5 hoạt động giống như một trình soạn thảo thông thường nhưng ánh xạ từ điển Python vào các hàng CSV. Tham số
reader = csv.reader[f]7 là một chuỗi các khóa xác định thứ tự các giá trị trong từ điển được truyền cho phương thức
for row in reader: for e in row: print[e]2 được ghi vào tệp CSV
$ cat numbers.csv 16,6,4,12,81,6,71,65
Ví dụ ghi các giá trị từ từ điển Python vào tệp CSV bằng cách sử dụng
for row in reader: for e in row: print[e]5Quảng cáo
$ cat numbers.csv 16,6,4,12,81,6,71,66
for row in reader: for e in row: print[e]5 mới được tạo. Tên tiêu đề được chuyển đến tham số
reader = csv.reader[f]7
$ cat numbers.csv 16,6,4,12,81,6,71,67
Phương thức
$ ./read_csv.py 16 6 4 12 81 6 71 61 ghi tiêu đề vào tệp CSV
$ cat numbers.csv 16,6,4,12,81,6,71,68
Từ điển Python được ghi vào một hàng trong tệp CSV
$ cat numbers.csv 16,6,4,12,81,6,71,69
Một phương ngữ tùy chỉnh được tạo bằng phương thức
$ ./read_csv.py 16 6 4 12 81 6 71 62
#!/usr/bin/python import csv f = open['numbers.csv', 'r'] with f: reader = csv.reader[f] for row in reader: for e in row: print[e]0
Chương trình sử dụng ký tự [#] làm dấu phân cách. Phương ngữ được chỉ định với tùy chọn
$ ./read_csv.py 16 6 4 12 81 6 71 63 trong phương thức
for row in reader: for e in row: print[e]0