Làm cách nào để đọc tệp csv theo dòng trong python?
Chúng tôi sẽ sử dụng độc quyền mô-đun 3 được tích hợp trong Python cho tác vụ này. Nhưng trước tiên, chúng ta sẽ phải nhập mô-đun dưới dạng Show
Chúng tôi đã trình bày những điều cơ bản về cách sử dụng mô-đun 3 để đọc và ghi vào tệp CSV. Nếu bạn không có bất kỳ ý tưởng nào về việc sử dụng mô-đun 3, hãy xem hướng dẫn của chúng tôi về Python CSV. Đọc và ghi tệp CSVCách sử dụng cơ bản của csv. người đọc()Hãy xem một ví dụ cơ bản về việc sử dụng 6 để làm mới kiến thức hiện có của bạnví dụ 1. Đọc tệp CSV bằng csv. người đọc()Giả sử chúng ta có tệp CSV với các mục sau SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming Chúng ta có thể đọc nội dung của tệp bằng chương trình sau
đầu ra ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming'] Ở đây, chúng tôi đã mở các nhà đổi mới. tệp csv ở chế độ đọc bằng hàm 7Để tìm hiểu thêm về cách mở tệp bằng Python, hãy truy cập. Nhập/xuất tệp Python Sau đó, 6 được sử dụng để đọc tệp, tệp này trả về một đối tượng 9 có thể lặp lạiĐối tượng 9 sau đó được lặp lại bằng cách sử dụng vòng lặp ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']1 để in nội dung của mỗi hàng Bây giờ, chúng ta sẽ xem xét các tệp CSV với các định dạng khác nhau. Sau đó chúng ta sẽ tìm hiểu cách tùy chỉnh hàm 6 để đọc chúngTệp CSV có Dấu phân cách tùy chỉnhTheo mặc định, dấu phẩy được sử dụng làm dấu phân cách trong tệp CSV. Tuy nhiên, một số tệp CSV có thể sử dụng dấu phân cách ngoài dấu phẩy. Vài cái phổ biến là ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']3 và ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']4 Giả sử những người đổi mới. tệp csv trong Ví dụ 1 đang sử dụng tab làm dấu phân cách. Để đọc tệp, chúng ta có thể truyền thêm một tham số ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']5 cho hàm 6Hãy lấy một ví dụ ví dụ 2. Đọc tệp CSV Có dấu phân cách tab 8đầu ra ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming'] Như chúng ta có thể thấy, tham số tùy chọn ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']7 giúp chỉ định đối tượng 9 mà tệp CSV chúng ta đang đọc từ đó, có các tab làm dấu phân cáchTệp CSV có khoảng trắng ban đầuMột số tệp CSV có thể có ký tự khoảng trắng sau dấu phân cách. Khi chúng tôi sử dụng hàm 6 mặc định để đọc các tệp CSV này, chúng tôi cũng sẽ nhận được khoảng trắng ở đầu raĐể loại bỏ các khoảng trắng ban đầu này, chúng ta cần truyền một tham số bổ sung có tên là 80. Chúng ta hãy xem xét một ví dụví dụ 3. Đọc tệp CSV có khoảng trắng ban đầuGiả sử chúng ta có một tệp CSV có tên là people. csv với nội dung sau 4Chúng tôi có thể đọc tệp CSV như sau 5đầu ra 6Chương trình tương tự như các ví dụ khác nhưng có thêm tham số 80 được đặt là TrueĐiều này cho phép đối tượng 9 biết rằng các mục có khoảng trắng ban đầu. Do đó, các khoảng trắng ban đầu xuất hiện sau khi dấu phân cách bị xóaTệp CSV có dấu ngoặc képMột số tệp CSV có thể có dấu ngoặc kép quanh mỗi hoặc một số mục nhập Hãy trích dẫn. csv làm ví dụ, với các mục sau 9Sử dụng 6 ở chế độ tối thiểu sẽ dẫn đến đầu ra có dấu ngoặc képĐể loại bỏ chúng, chúng ta sẽ phải sử dụng một tham số tùy chọn khác có tên là 84Hãy xem một ví dụ về cách đọc chương trình trên Ví dụ 4. Đọc tệp CSV có dấu ngoặc képSN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming0 đầu ra SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming1 Như bạn có thể thấy, chúng tôi đã chuyển 85 cho tham số 84. Nó là một hằng số được xác định bởi mô-đun 3 85 chỉ định đối tượng trình đọc mà tất cả các giá trị trong tệp CSV đều có trong dấu ngoặc képCó 3 hằng số được xác định trước khác mà bạn có thể chuyển đến tham số 84
Phương ngữ trong mô-đun CSVLưu ý trong Ví dụ 4 rằng chúng ta đã truyền nhiều tham số ( 84 và 80) cho hàm 6Thực hành này được chấp nhận khi xử lý một hoặc hai tệp. Nhưng nó sẽ làm cho mã trở nên thừa và xấu hơn khi chúng ta bắt đầu làm việc với nhiều tệp CSV có định dạng tương tự nhau Như một giải pháp cho vấn đề này, mô-đun 3 cung cấp ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']9 dưới dạng tham số tùy chọn Phương ngữ giúp nhóm nhiều mẫu định dạng cụ thể như _______ 75, _______ 180, ________ 184, ________ 243 thành một tên phương ngữ duy nhất Sau đó, nó có thể được truyền dưới dạng tham số cho nhiều phiên bản 44 hoặc 9Ví dụ 5. Đọc tệp CSV bằng phương ngữGiả sử chúng ta có một tệp CSV (office. csv) với nội dung sau SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming2 Tệp CSV có khoảng trắng ban đầu, dấu ngoặc kép xung quanh mỗi mục nhập và sử dụng dấu phân cách ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']3 Thay vì chuyển ba mẫu định dạng riêng lẻ, hãy xem cách sử dụng phương ngữ để đọc tệp này SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming3 đầu ra SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming4 Từ ví dụ này, chúng ta có thể thấy rằng hàm 47 được sử dụng để xác định phương ngữ tùy chỉnh. Nó có cú pháp sauSN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming5 Phương ngữ tùy chỉnh yêu cầu tên ở dạng chuỗi. Các thông số kỹ thuật khác có thể được thực hiện bằng cách chuyển một lớp con của lớp 48 hoặc bằng các mẫu định dạng riêng lẻ như trong ví dụTrong khi tạo đối tượng người đọc, chúng tôi vượt qua 49 để chỉ định rằng phiên bản người đọc phải sử dụng phương ngữ cụ thể đóƯu điểm của việc sử dụng ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']9 là nó làm cho chương trình trở nên mô-đun hơn. Lưu ý rằng chúng tôi có thể sử dụng lại 'myDialect' để mở các tệp khác mà không phải chỉ định lại định dạng CSV Đọc tệp CSV bằng csv. DictReader()Các đối tượng của lớp 51 có thể được sử dụng để đọc tệp CSV dưới dạng từ điểnVí dụ 6. Python csv. DictReader()Giả sử chúng ta có một tệp CSV (người. csv) với các mục sau TênTuổiNghề nghiệpJack23Bác sĩMiller22Kỹ sưHãy xem cách sử dụng 51SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming6 đầu ra SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming7 Như chúng ta có thể thấy, các mục của hàng đầu tiên là các khóa từ điển. Và, các mục trong các hàng khác là các giá trị từ điển Ở đây, csv_file là một đối tượng 51. Đối tượng có thể được lặp lại bằng cách sử dụng vòng lặp ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']1. 51 trả về loại 56 cho mỗi hàng. Đó là lý do tại sao chúng tôi sử dụng 57 để chuyển đổi từng hàng thành từ điểnLưu ý rằng chúng ta đã sử dụng rõ ràng phương thức dict() để tạo từ điển bên trong vòng lặp ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']1 SN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming8 Ghi chú. Bắt đầu từ Python 3. 8, 51 trả về một từ điển cho mỗi hàng và chúng tôi không cần sử dụng rõ ràng 57Cú pháp đầy đủ của lớp 51 làSN,Name,Contribution 1,Linus Torvalds,Linux Kernel 2,Tim Berners-Lee,World Wide Web 3,Guido van Rossum,Python Programming9 Để tìm hiểu thêm về nó một cách chi tiết, hãy truy cập. sử dụng csv. lớp đánh hơiLớp 62 được sử dụng để suy ra định dạng của tệp CSVLớp 62 cung cấp hai phương thức
Một tham số dấu phân cách tùy chọn có thể được truyền dưới dạng một chuỗi chứa các ký tự dấu phân cách hợp lệ có thể
Hãy xem một ví dụ về việc sử dụng các chức năng này Ví dụ 7. sử dụng csv. Sniffer() để suy ra phương ngữ của tệp CSVGiả sử chúng ta có một tệp CSV (office. csv) với nội dung sau 0Hãy xem cách chúng ta có thể suy ra định dạng của tệp này bằng cách sử dụng lớp 69 1đầu ra 2Như bạn có thể thấy, chúng tôi chỉ đọc 64 ký tự của văn phòng. csv và lưu trữ nó trong biến mẫu Mẫu này sau đó được chuyển thành tham số cho hàm 90. Nó suy ra rằng hàng đầu tiên phải có tiêu đề cột. Do đó, nó trả về 67 sau đó được in raTương tự, mẫu cũng được chuyển đến hàm 92. Nó trả về tất cả các tham số được suy ra dưới dạng một lớp con 48, sau đó được lưu trữ trong biến dedicted_dialectSau đó, chúng tôi mở lại tệp CSV và chuyển biến 94 làm tham số cho 6Nó có thể dự đoán chính xác các thông số ['SN', 'Name', 'Contribution'] ['1', 'Linus Torvalds', 'Linux Kernel'] ['2', 'Tim Berners-Lee', 'World Wide Web'] ['3', 'Guido van Rossum', 'Python Programming']5, 84 và 80 trong văn phòng. csv mà chúng tôi không đề cập rõ ràng đến chúngGhi chú. Mô-đun csv cũng có thể được sử dụng cho các phần mở rộng tệp khác (như. . txt) miễn là nội dung của chúng có cấu trúc phù hợp Làm cách nào để đọc từng dòng tệp csv trong Python bằng gấu trúc?Đọc tệp CSV . Tải CSV vào DataFrame. nhập gấu trúc dưới dạng pd. df = pd. read_csv('dữ liệu. csv'). In DataFrame mà không cần phương thức to_string(). nhập gấu trúc dưới dạng pd. . Kiểm tra số lượng hàng được trả về tối đa. nhập gấu trúc dưới dạng pd. . Tăng số hàng tối đa để hiển thị toàn bộ DataFrame. nhập gấu trúc dưới dạng pd Bạn có thể sử dụng readline() cho CSV không?Tất cả các phương thức tệp mà chúng tôi đã đề cập - read , readline và readlines và chỉ cần lặp lại trên chính đối tượng tệp - sẽ hoạt động trên các tệp CSV. |