Tệp CSV là một loại tệp văn bản thuần túy đơn giản sử dụng cấu trúc cụ thể để sắp xếp dữ liệu dạng bảng. Định dạng tiêu chuẩn của tệp CSV được xác định bởi dữ liệu hàng và cột trong đó một dòng mới kết thúc mỗi hàng để bắt đầu hàng tiếp theo và mỗi cột được phân tách bằng dấu phẩy trong hàng
CSV là một định dạng phổ biến để trao đổi dữ liệu vì nó nhỏ gọn, đơn giản và tổng quát. Nhiều dịch vụ trực tuyến cho phép người dùng của họ xuất dữ liệu dạng bảng từ trang web thành tệp CSV. Tệp CSV sẽ mở trong Excel và gần như tất cả các cơ sở dữ liệu đều có công cụ cho phép nhập từ tệp CSV
Trong hướng dẫn này, bạn sẽ học
- Tệp CSV là gì?
- Tệp mẫu CSV
- Mô-đun CSV Python
- Chức năng mô-đun CSV
- Cách đọc tệp CSV bằng Python
- Cách đọc tệp CSV thành Từ điển bằng Python
- Cách viết tệp CSV bằng Python
- Đọc tệp CSV bằng Pandas
- Viết tệp CSV bằng Pandas
Tệp mẫu CSV
Dữ liệu ở dạng bảng còn được gọi là CSV [giá trị được phân tách bằng dấu phẩy] – nghĩa đen là “giá trị được phân tách bằng dấu phẩy. Đây là một định dạng văn bản dành cho việc trình bày dữ liệu dạng bảng. Mỗi dòng của tệp là một dòng của bảng. Các giá trị của các cột riêng lẻ được phân tách bằng ký hiệu phân cách – dấu phẩy [,], dấu chấm phẩy [;] hoặc ký hiệu khác. CSV có thể dễ dàng đọc và xử lý bằng Python
Xem xét bảng sau
Bảng dữ liệu
Ngôn ngữ lập trìnhDesigned byAppearedExtensionPythonGuido van Rossum1991. pyJavaJames Gosling1995. javaC++Bjarne Stroustrup1983. cppBạn có thể đại diện cho bảng này trong csv như bên dưới
Dữ liệu CSV
Ngôn ngữ lập trình, Được thiết kế bởi, Đã xuất hiện, Phần mở rộng
Trăn, Guido van Rossum, 1991,. py
Java, James Gosling, 1995,. java
C++, Bjarne Stroustrup, 1983,. cpp
Như bạn có thể thấy mỗi hàng là một dòng mới và mỗi cột được phân tách bằng dấu phẩy. Đây là một ví dụ về cách tệp CSV trông như thế nào
Tải xuống dữ liệu CSV
Mô-đun CSV Python
Python cung cấp mô-đun CSV để xử lý các tệp CSV. Để đọc/ghi dữ liệu, bạn cần lặp qua các hàng của CSV. Bạn cần sử dụng phương pháp tách để lấy dữ liệu từ các cột được chỉ định
Chức năng mô-đun CSV
Trong tài liệu mô-đun CSV, bạn có thể tìm thấy các chức năng sau
- csv. field_size_limit – trả về kích thước trường tối đa
- csv. get_dialect – lấy phương ngữ được liên kết với tên
- csv. list_dialects – hiển thị tất cả các phương ngữ đã đăng ký
- csv. trình đọc – đọc dữ liệu từ tệp csv
- csv. register_dialect – liên kết phương ngữ với tên
- csv. nhà văn – ghi dữ liệu vào tệp csv
- csv. unregister_dialect – xóa phương ngữ được liên kết với tên đăng ký phương ngữ
- csv. QUOTE_ALL – Trích dẫn mọi thứ, bất kể loại nào
- csv. QUOTE_MINIMAL – Trường trích dẫn có ký tự đặc biệt
- csv. QUOTE_NONNUMERIC – Trích dẫn tất cả các trường không phải là giá trị số
- csv. QUOTE_NONE – Không trích dẫn bất cứ điều gì trong đầu ra
Trong hướng dẫn này, chúng tôi sẽ chỉ tập trung vào các chức năng của trình đọc và trình ghi cho phép bạn chỉnh sửa, sửa đổi và thao tác dữ liệu trong tệp CSV
Cách đọc tệp CSV bằng Python
Dưới đây là các bước để đọc tệp CSV bằng Python
Bước 1] Để đọc dữ liệu từ tệp CSV, bạn phải sử dụng chức năng trình đọc để tạo đối tượng trình đọc
Chức năng đọc được phát triển để lấy từng hàng của tệp và tạo danh sách tất cả các cột. Sau đó, bạn phải chọn cột bạn muốn dữ liệu biến cho
Nghe có vẻ phức tạp hơn nhiều so với thực tế. Hãy xem mã Python này để đọc tệp CSV và chúng ta sẽ thấy rằng làm việc với tệp csv không quá khó
#import necessary modules import csv with open['X:\data.csv','rt']as f: data = csv.reader[f] for row in data: print[row]
Bước 2] Khi bạn thực hiện chương trình trên, đầu ra sẽ là
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Cách đọc tệp CSV thành Từ điển bằng Python
Bạn cũng có thể sử dụng DictReader để đọc tệp CSV. Kết quả được hiểu là một từ điển trong đó hàng tiêu đề là khóa và các hàng khác là giá trị
Hãy xem xét đoạn mã sau
#import necessary modules import csv reader = csv.DictReader[open["file2.csv"]] for raw in reader: print[raw]
Kết quả của mã này là
OrderedDict[[['Programming language', 'Python'], ['Designed by', 'Guido van Rossum'], [' Appeared', ' 1991'], [' Extension', ' .py']]] OrderedDict[[['Programming language', 'Java'], ['Designed by', 'James Gosling'], [' Appeared', ' 1995'], [' Extension', ' .java']]] OrderedDict[[['Programming language', 'C++'], ['Designed by', ' Bjarne Stroustrup'], [' Appeared', ' 1985'], [' Extension', ' .cpp']]]
Và cách này để đọc dữ liệu từ tệp CSV dễ dàng hơn nhiều so với phương pháp trước đó. Tuy nhiên, đây không phải là cách tốt nhất để đọc dữ liệu
Cách viết tệp CSV bằng Python
Đây là cách viết tệp CSV bằng Python
Khi bạn có một bộ dữ liệu mà bạn muốn lưu trữ trong tệp CSV, bạn phải sử dụng hàm writer[]. Để lặp lại dữ liệu qua các hàng [dòng], bạn phải sử dụng hàm writerow[]
Xem xét ví dụ sau. Chúng tôi ghi dữ liệu vào một tập tin “writeData. csv” trong đó dấu phân cách là dấu nháy đơn
#import necessary modules import csv with open['X:\writeData.csv', mode='w'] as file: writer = csv.writer[file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL] #way to write to csv file writer.writerow[['Programming language', 'Designed by', 'Appeared', 'Extension']] writer.writerow[['Python', 'Guido van Rossum', '1991', '.py']] writer.writerow[['Java', 'James Gosling', '1995', '.java']] writer.writerow[['C++', 'Bjarne Stroustrup', '1985', '.cpp']]
Kết quả trong tệp csv là
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Đọc tệp CSV bằng Pandas
Pandas là một thư viện mã nguồn mở cho phép bạn nhập CSV bằng Python và thực hiện thao tác dữ liệu. Pandas cung cấp một cách dễ dàng để tạo, thao tác và xóa dữ liệu
You must install pandas library with command pip install pandas
. In Windows, you will execute this command in Command Prompt while in Linux in the Terminal.
Đọc CSV thành DataFrame của gấu trúc rất nhanh chóng và dễ dàng
#import necessary modules import pandas result = pandas.read_csv['X:\data.csv'] print[result]
Kết quả của ví dụ Pandas CSV đã đọc
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Thư viện rất hữu ích. Chỉ trong ba dòng mã, bạn có kết quả giống như trước đó. Pandas biết rằng dòng đầu tiên của CSV chứa tên cột và nó sẽ tự động sử dụng chúng
Viết tệp CSV bằng Pandas
Ghi vào tệp CSV bằng Pandas dễ dàng như đọc. Ở đây bạn có thể thuyết phục trong đó. Trước tiên, bạn phải tạo DataFrame dựa trên mã Python ghi vào mã CSV sau
________số 8Đây là đầu ra
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Và tệp CSV được tạo tại vị trí đã chỉ định
Sự kết luận
Vì vậy, bây giờ bạn đã biết cách sử dụng phương thức 'csv' cũng như đọc và ghi dữ liệu ở định dạng CSV. Các tệp CSV được sử dụng rộng rãi trong các ứng dụng phần mềm vì chúng dễ đọc và dễ quản lý, đồng thời kích thước nhỏ giúp chúng xử lý và truyền tải tương đối nhanh
Mô-đun csv cung cấp các hàm và lớp khác nhau cho phép bạn đọc và viết dễ dàng. Bạn có thể xem tài liệu Python chính thức và tìm một số mẹo và mô-đun thú vị hơn. CSV là cách tốt nhất để lưu, xem và gửi dữ liệu. Trên thực tế, nó không quá khó để học như lúc đầu. Nhưng với một chút luyện tập, bạn sẽ thành thạo nó
Pandas là một giải pháp thay thế tuyệt vời để đọc các tệp CSV
Ngoài ra, có nhiều cách khác để phân tích tệp văn bản bằng các thư viện như ANTLR, PLY và PlyPlus. Tất cả chúng đều có thể xử lý phân tích cú pháp hạng nặng và nếu thao tác Chuỗi đơn giản không hoạt động, thì có các biểu thức chính quy mà bạn có thể sử dụng