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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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

import csv

Chúng tôi đã trình bày những điều cơ bản về cách sử dụng mô-đun

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
3, hãy xem hướng dẫn của chúng tôi về Python CSV. Đọc và ghi tệp CSV

Cá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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6 để làm mới kiến ​​thức hiện có của bạn

ví 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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]

đầ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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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 đó,

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6 được sử dụng để đọc tệp, tệp này trả về một đối tượng
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
9 có thể lặp lại

Đối tượng

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6 để đọc chúng

Tệp CSV có Dấu phân cách tùy chỉnh

Theo 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
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6

Hãy lấy một ví dụ

ví dụ 2. Đọc tệp CSV Có dấu phân cách tab

import csv
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
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
9 mà tệp CSV chúng ta đang đọc từ đó, có các tab làm dấu phân cách

Tệp CSV có khoảng trắng ban đầu

Mộ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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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à

import csv
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 đầu

Giả sử chúng ta có một tệp CSV có tên là people. csv với nội dung sau

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
4

Chúng tôi có thể đọc tệp CSV như sau

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
5

đầu ra

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6

Chương trình tương tự như các ví dụ khác nhưng có thêm tham số

import csv
80 được đặt là True

Điều này cho phép đối tượng

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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óa

Tệp CSV có dấu ngoặc kép

Mộ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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
9

Sử dụng

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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à

import csv
84

Hã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ép

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
0

đầu ra

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
1

Như bạn có thể thấy, chúng tôi đã chuyển

import csv
85 cho tham số
import csv
84. Nó là một hằng số được xác định bởi mô-đun
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
3

import csv
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ép

Có 3 hằng số được xác định trước khác mà bạn có thể chuyển đến tham số

import csv
84

  • ['SN', 'Name', 'Contribution']
    ['1', 'Linus Torvalds', 'Linux Kernel']
    ['2', 'Tim Berners-Lee', 'World Wide Web']
    ['3', 'Guido van Rossum', 'Python Programming']
    
    0 - Chỉ định đối tượng
    import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    9 mà tệp CSV có dấu ngoặc kép xung quanh các mục có chứa các ký tự đặc biệt như dấu phân cách, ký tự trích dẫn hoặc bất kỳ ký tự nào trong bộ kết thúc dòng
  • ['SN', 'Name', 'Contribution']
    ['1', 'Linus Torvalds', 'Linux Kernel']
    ['2', 'Tim Berners-Lee', 'World Wide Web']
    ['3', 'Guido van Rossum', 'Python Programming']
    
    2 - Chỉ định đối tượng
    import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    9 mà tệp CSV có dấu ngoặc kép xung quanh các mục nhập không phải là số
  • ['SN', 'Name', 'Contribution']
    ['1', 'Linus Torvalds', 'Linux Kernel']
    ['2', 'Tim Berners-Lee', 'World Wide Web']
    ['3', 'Guido van Rossum', 'Python Programming']
    
    4 - Chỉ định đối tượng người đọc mà không có mục nào có dấu ngoặc kép xung quanh chúng

Phương ngữ trong mô-đun CSV

Lưu ý trong Ví dụ 4 rằng chúng ta đã truyền nhiều tham số [

import csv
84 và
import csv
80] cho hàm
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6

Thự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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
44 hoặc
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
9

Ví 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 Programming
2

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 Programming
3

đầu ra

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
4

Từ ví dụ này, chúng ta có thể thấy rằng hàm

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
47 được sử dụng để xác định phương ngữ tùy chỉnh. Nó có cú pháp sau

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
5

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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
51 có thể được sử dụng để đọc tệp CSV dưới dạng từ điển

Ví 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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
51

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
6

đầu ra

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
7

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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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.
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
51 trả về loại
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
56 cho mỗi hàng. Đó là lý do tại sao chúng tôi sử dụng
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
57 để chuyển đổi từng hàng thành từ điển

Lư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 Programming
8

Ghi chú. Bắt đầu từ Python 3. 8,

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
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
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
57

Cú pháp đầy đủ của lớp

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
51 là

SN,Name,Contribution
1,Linus Torvalds,Linux Kernel
2,Tim Berners-Lee,World Wide Web
3,Guido van Rossum,Python Programming
9

Để 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ơi

Lớp

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
62 được sử dụng để suy ra định dạng của tệp CSV

Lớp

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
62 cung cấp hai phương thức

  • import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    64 - Hàm này phân tích một mẫu nhất định của văn bản CSV và trả về một lớp con
    import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    48 chứa tất cả các tham số được suy ra

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ể

  • import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    66 - Hàm này trả về
    import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    67 hoặc
    import csv
    with open['innovators.csv', 'r'] as file:
        reader = csv.reader[file]
        for row in reader:
            print[row]
    
    68 dựa trên việc phân tích xem CSV mẫu có hàng đầu tiên làm tiêu đề cột hay không

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 CSV

Giả sử chúng ta có một tệp CSV [office. csv] với nội dung sau

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
0

Hã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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
69

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
1

đầu ra

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
2

Như 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

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
90. Nó suy ra rằng hàng đầu tiên phải có tiêu đề cột. Do đó, nó trả về
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
67 sau đó được in ra

Tương tự, mẫu cũng được chuyển đến hàm

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
92. Nó trả về tất cả các tham số được suy ra dưới dạng một lớp con
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
48, sau đó được lưu trữ trong biến dedicted_dialect

Sau đó, chúng tôi mở lại tệp CSV và chuyển biến

import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
94 làm tham số cho
import csv
with open['innovators.csv', 'r'] as file:
    reader = csv.reader[file]
    for row in reader:
        print[row]
6

Nó 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,
import csv
84 và
import csv
80 trong văn phòng. csv mà chúng tôi không đề cập rõ ràng đến chúng

Ghi 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.

Chủ Đề