Tóm lược. trong hướng dẫn này, bạn sẽ học cách đọc tệp CSV bằng Python bằng mô-đun
7 tích hợpCode language: Python [python]
f = open['path/to/csv_file']
Tệp CSV là gì
CSV là viết tắt của các giá trị được phân tách bằng dấu phẩy. Tệp CSV là tệp văn bản được phân tách bằng dấu phẩy để phân tách các giá trị
Tệp CSV bao gồm một hoặc nhiều dòng. Mỗi dòng là một bản ghi dữ liệu. Và mỗi bản ghi dữ liệu bao gồm một hoặc nhiều giá trị được phân tách bằng dấu phẩy. Ngoài ra, tất cả các dòng của tệp CSV có cùng một số giá trị
Thông thường, bạn sử dụng tệp CSV để lưu trữ dữ liệu dạng bảng ở dạng văn bản thuần túy. Định dạng tệp CSV khá phổ biến và được hỗ trợ bởi nhiều ứng dụng phần mềm như Microsoft Excel và Google Spreadsheet
Đọc tệp csv bằng Python
Để đọc tệp CSV bằng Python, bạn làm theo các bước sau
Đầu tiên, nhập mô-đun csv
Code language: Python [python]
import csv
Thứ hai, mở tệp CSV bằng chức năng open[] tích hợp ở chế độ đọc
Code language: Python [python]
f = open['path/to/csv_file']
Nếu CSV chứa các ký tự UTF8, bạn cần chỉ định mã hóa như thế này
Code language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
Thứ ba, chuyển đối tượng tệp [
8] đến hàmCode language: Python [python]
f = open['path/to/csv_file']
9 của mô-đunCode language: Python [python]
f = open['path/to/csv_file']
7. HàmCode language: Python [python]
f = open['path/to/csv_file']
9 trả về một đối tượng trình đọc csv________số 8Code language: Python [python]
f = open['path/to/csv_file']
2 là một đối tượng có thể lặp lại của các dòng từ tệp CSV. Do đó, bạn có thể lặp qua các dòng của tệp CSV bằng vòng lặpCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
3Code language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
1Code language: Python [python]
import csv
Mỗi dòng là một danh sách các giá trị. Để truy cập từng giá trị, bạn sử dụng ký hiệu dấu ngoặc vuông
4. Giá trị đầu tiên có chỉ số là 0. Giá trị thứ hai có chỉ số là 1, v.v.
f = open['path/to/csv_file', encoding='UTF8']
Code language: Python [python]
Ví dụ: phần sau truy cập giá trị đầu tiên của một dòng cụ thể
3Code language: Python [python]
import csv
Cuối cùng, luôn đóng tệp sau khi bạn không còn truy cập tệp nữa bằng cách gọi phương thức
5 của đối tượng tệpCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
5Code language: Python [python]
import csv
Sẽ dễ dàng hơn khi sử dụng câu lệnh
6 để bạn không cần gọi phương thứcCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
5 một cách rõ ràngCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
Phần sau đây minh họa tất cả các bước để đọc tệp CSV
8Code language: Python [python]
import csv
Đọc ví dụ về tệp CSV
Chúng tôi sẽ sử dụng tệp
8 chứa thông tin quốc gia bao gồm tên, khu vực, mã quốc gia gồm 2 chữ cái, mã quốc gia gồm 3 chữ cáiCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
Sau đây trình bày cách đọc tệp
8 và hiển thị từng dòng ra màn hìnhCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
1Code language: Python [python]
f = open['path/to/csv_file']
đầu ra
2Code language: Python [python]
f = open['path/to/csv_file']
8 có dòng đầu tiên là tiêu đề. Để tách tiêu đề và dữ liệu, bạn sử dụng hàmCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
1 để lấy chỉ mục của từng dòngCode language: Python [python]
csv_reader = csv.reader[f]
0
f = open['path/to/csv_file']
Code language: Python [python]
Trong ví dụ này, chúng tôi sử dụng hàm
1 và chỉ định chỉ mục của dòng đầu tiên là 1Code language: Python [python]
csv_reader = csv.reader[f]
Bên trong vòng lặp, nếu
3 là 1, dòng này là tiêu đề. Mặt khác, đó là một dòng dữ liệuCode language: Python [python]
csv_reader = csv.reader[f]
Một cách khác để bỏ qua tiêu đề là sử dụng hàm
4. HàmCode language: Python [python]
csv_reader = csv.reader[f]
4 chuyển tiếp cho người đọc đến dòng tiếp theo. Ví dụCode language: Python [python]
csv_reader = csv.reader[f]
1Code language: Python [python]
f = open['path/to/csv_file']
Sau đây đọc tệp
8 và tính tổng diện tích của tất cả các quốc giaCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
2Code language: Python [python]
f = open['path/to/csv_file']
đầu ra
3Code language: Python [python]
f = open['path/to/csv_file']
Đọc tệp CSV bằng lớp DictReader
Khi bạn sử dụng hàm
7, bạn có thể truy cập các giá trị của tệp CSV bằng cách sử dụng ký hiệu ngoặc đơn, chẳng hạn nhưCode language: Python [python]
csv_reader = csv.reader[f]
8,Code language: Python [python]
csv_reader = csv.reader[f]
9, v.v. Tuy nhiên, việc sử dụng hàmCode language: Python [python]
csv_reader = csv.reader[f]
7 có hai hạn chế chínhCode language: Python [python]
csv_reader = csv.reader[f]
- Đầu tiên, cách truy cập các giá trị từ tệp CSV không quá rõ ràng. Ví dụ:
8 có nghĩa ngầm là tên quốc gia. Sẽ rõ ràng hơn nếu bạn có thể truy cập tên quốc gia như
Code language: Python [python]csv_reader = csv.reader[f]
12
Code language: Python [python]import csv
- Thứ hai, khi thứ tự các cột từ tệp CSV bị thay đổi hoặc các cột mới được thêm vào, bạn cần sửa đổi mã để lấy đúng dữ liệu
Đây là lúc lớp
13 phát huy tác dụng. Lớp DictReader cũng xuất phát từ mô-đunCode language: Python [python]
import csv
7
f = open['path/to/csv_file']
Code language: Python [python]
Lớp
13 cho phép bạn tạo một đối tượng giống như một trình đọc CSV thông thường. Nhưng nó ánh xạ thông tin của từng dòng tới một từ điển [Code language: Python [python]
import csv
16] có các khóa được chỉ định bởi các giá trị của dòng đầu tiênCode language: Python [python]
import csv
Bằng cách sử dụng lớp
13, bạn có thể truy cập các giá trị trong tệpCode language: Python [python]
import csv
8 nhưCode language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
19,Code language: Python [python]
import csv
30,Code language: Python [python]
import csv
31 và dòngCode language: Python [python]
import csv
32Code language: Python [python]
import csv
Ví dụ sau sử dụng lớp
13 để đọc tệpCode language: Python [python]
import csv
8Code language: Python [python]
f = open['path/to/csv_file', encoding='UTF8']
4Code language: Python [python]
f = open['path/to/csv_file']
đầu ra
5Code language: Python [python]
f = open['path/to/csv_file']
Nếu bạn muốn có các tên trường khác với tên được chỉ định trong dòng đầu tiên, bạn có thể chỉ định rõ ràng chúng bằng cách chuyển danh sách tên trường tới hàm tạo
35 như thế nàyCode language: Python [python]
import csv
6Code language: Python [python]
f = open['path/to/csv_file']
Trong ví dụ này, thay vì sử dụng các giá trị từ dòng đầu tiên làm tên trường, chúng tôi chuyển rõ ràng danh sách tên trường cho hàm tạo
13Code language: Python [python]
import csv