Tệp CSV là gì?
Tệp CSV là một loại tệp văn bản thuần túy sử dụng cấu trúc cụ thể để sắp xếp dữ liệu dạng bả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à chung chung. Nhiều dịch vụ trực tuyến cho phép người dùng xuất dữ liệu dạng bảng từ trang web thành tệp CSV. Các tệp CSV sẽ mở sang 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. Định dạng tiêu chuẩn được xác định bởi dữ liệu hàng và cột. Hơn nữa, mỗi hàng được kết thúc bởi một dòng mới để bắt đầu hàng tiếp theo. Cũng trong hàng, mỗi cột được phân tách bằng dấu phẩy.
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 của mô-đun CSV
- Đọc tệp CSV
- Đọc như một từ điển
- Ghi vào tệp CSV
- Đọc tệp CSV với gấu trúc
- Ghi vào tệp CSV với gấu trúc
Tệp mẫu CSV.
Dữ liệu ở dạng bảng còn được gọi là CSV (các giá trị được phân tách bằng dấu phẩy) - nghĩa đen là "các 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. Giá trị của các cột riêng lẻ được phân tách bằng ký hiệu phân tách - dấu phẩy (,), dấu chấm phẩy (;) hoặc một ký hiệu khác. CSV có thể dễ dàng đọc và xử lý bằng Python.
Hãy xem xét Tabe sau
Bảng dữ liệu
Ngôn ngữ lập trình | Thiết kế bởi | Đã xuất hiện | Sự mở rộng |
Python | Guido van Rossum | 1991 | .py |
Java | James Gosling | 1995 | .java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Bạn có thể biểu diễn 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, Tiện ích mở rộng
Python, 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ột 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 của 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.reader - đọc dữ liệu từ tệp csv
- csv.register_dialect - kết hợp phương ngữ với tên
- csv.writer - 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ích dẫn các trường với cá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 kỳ đ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 trình đọc và 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
Để đọ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 mà bạn muốn có dữ liệu biến.
Nghe có vẻ phức tạp hơn rất nhiều so với thực tế. Hãy xem ví dụ này và chúng ta sẽ thấy rằng làm việc với tệp csv không quá khó.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Khi bạn thực hiện chương trình trên, kết quả đầ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 CSV dưới dạng từ điển
Bạn cũng có thể sử dụng DictReader để đọc các tệp CSV. Kết quả được hiểu như 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 modulesimport csvreader = 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
Khi bạn có một tập hợp dữ liệu mà bạn muốn lưu trữ trong tệp CSV, bạn phải sử dụng hàm write (). Để lặp lại dữ liệu qua các hàng (dòng), bạn phải sử dụng hàm writerow ().
Hãy xem xét ví dụ sau đây. Chúng tôi ghi dữ liệu vào tệp "writeData.csv" trong đó dấu phân cách là dấu nháy đơn.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.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, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Đọc tệp CSV với gấu trúc
Pandas là một thư viện nguồn mở cho phép bạn thực hiện thao tác dữ liệu bằng Python. Pandas cung cấp một cách dễ dàng để tạo, thao tác và xóa dữ liệu.
Bạn phải cài đặt thư viện gấu trúc bằng lệnh pip install pandas
. Trong windows, bạn sẽ thực hiện lệnh này trong Command Prompt trong khi Linux ở Terminal.
Đọc CSV thành một con gấu trúc DataFrame rất nhanh chóng và dễ dàng:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Kết quả:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 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ả tương tự như trước đó. Gấu trúc 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.
Ghi vào tệp CSV với gấu trúc
Ghi vào tệp CSV với Pandas dễ dàng như đọc. Ở đây bạn có thể thuyết phục trong đó. Đầu tiên, bạn phải tạo DataFrame dựa trên đoạn mã sau.
from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)
Đây là đầu ra
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Và tệp CSV được tạo tại vị trí được chỉ định.
Phần kết luận
Vì vậy, bây giờ bạn đã biết cách sử dụng phương pháp 'csv' và cũng có thể đọ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à quản lý, đồng thời kích thước nhỏ của chúng khiến cho việc xử lý và truyền tải tương đối nhanh.
Mô-đun csv cung cấp các chức năng và lớp khác nhau cho phép bạn đọc và ghi dễ dàng. Bạn có thể xem tài liệu Python chính thức và tìm thấy 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 thực hành, bạn sẽ thành thạo nó.
Pandas là một lựa chọn thay thế tuyệt vời để đọc các tệp CSV.
Ngoài ra, có những cách khác để phân tích cú pháp tệp văn bản với 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 nặng và nếu thao tác chuỗi đơn giản không hoạt động, có những biểu thức chính quy mà bạn có thể sử dụng.