Hướng dẫn read csv line by line python - đọc csv từng dòng python
Show
Trong bài viết này, chúng tôi sẽ thảo luận về cách đọc một dòng tệp CSV theo dòng có hoặc không có tiêu đề. Đồng thời chọn các cột cụ thể trong khi lặp qua dòng tệp CSV từng dòng. Giả sử chúng ta có một tập tin CSV sinh viên.csv và nội dung của nó là,students.csv and its contents are, Id,Name,Course,City,Session 21,Mark,Python,London,Morning 22,John,Python,Tokyo,Evening 23,Sam,Python,Paris,Morning 32,Shaun,Java,Tokyo,Morning Chúng tôi muốn đọc tất cả các hàng của dòng tệp CSV này từng dòng và xử lý từng dòng tại một thời điểm. Ngoài ra, lưu ý rằng, ở đây chúng tôi không muốn đọc tất cả các dòng vào danh sách danh sách và sau đó lặp lại nó, bởi vì đó sẽ không phải là một giải pháp hiệu quả cho tệp CSV lớn, tức là tệp có kích thước tính bằng GBS. Chúng tôi đang tìm kiếm các giải pháp trong đó chúng tôi đọc và xử lý chỉ một dòng tại một thời điểm trong khi lặp qua tất cả các hàng CSV, do đó, bộ nhớ tối thiểu được sử dụng. Hãy để xem cách làm điều này, Quảng cáo Python có mô -đun CSV, cung cấp hai lớp khác nhau để đọc nội dung của tệp CSV, tức là CSV.Reader và CSV.DicTreader. Hãy để thảo luận và sử dụng từng cái một để đọc từng dòng tệp CSV, từng dòng, Đọc từng dòng tệp CSV bằng CSV.ReaderVới đối tượng lớp đọc mô -đun CSV, chúng tôi có thể lặp lại các dòng của tệp CSV dưới dạng danh sách các giá trị, trong đó mỗi giá trị trong danh sách là giá trị ô. Hãy để hiểu với một ví dụ, from csv import reader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to reader() to get the reader object csv_reader = reader(read_obj) # Iterate over each row in the csv using reader object for row in csv_reader: # row variable is a list that represents a row in csv print(row) Đầu ra: ['Id', 'Name', 'Course', 'City', 'Session'] ['21', 'Mark', 'Python', 'London', 'Morning'] ['22', 'John', 'Python', 'Tokyo', 'Evening'] ['23', 'Sam', 'Python', 'Paris', 'Morning'] ['32', 'Shaun', 'Java', 'Tokyo', 'Morning'] Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó. Nó hoạt động như thế nào? Nó thực hiện các bước sau,
Bằng cách này, chỉ có một dòng trong bộ nhớ tại một thời điểm trong khi lặp qua tệp CSV, điều này làm cho nó trở thành một giải pháp hiệu quả bộ nhớ. Trong ví dụ trước, chúng tôi đã lặp lại tất cả các hàng của tệp CSV bao gồm cả tiêu đề. Nhưng giả sử chúng tôi muốn bỏ qua tiêu đề và lặp qua các hàng còn lại của tệp CSV. Hãy để xem cách làm điều đó, from csv import reader # skip first line i.e. read header first and then iterate over each row od csv as a list with open('students.csv', 'r') as read_obj: csv_reader = reader(read_obj) header = next(csv_reader) # Check file as empty if header != None: # Iterate over each row after the header in the csv for row in csv_reader: # row variable is a list that represents a row in csv print(row) Đầu ra: ['21', 'Mark', 'Python', 'London', 'Morning'] ['22', 'John', 'Python', 'Tokyo', 'Evening'] ['23', 'Sam', 'Python', 'Paris', 'Morning'] ['32', 'Shaun', 'Java', 'Tokyo', 'Morning'] Header was: ['Id', 'Name', 'Course', 'City', 'Session']
['Id', 'Name', 'Course', 'City', 'Session'] ['21', 'Mark', 'Python', 'London', 'Morning'] ['22', 'John', 'Python', 'Tokyo', 'Evening'] ['23', 'Sam', 'Python', 'Paris', 'Morning'] ['32', 'Shaun', 'Java', 'Tokyo', 'Morning'] Nó hoạt động như thế nào? Nó thực hiện các bước sau, Mở tệp ‘sinh viên.csv, trong chế độ đọc và tạo đối tượng tệp.Tạo một đối tượng đầu đọc (iterator) bằng cách chuyển đối tượng tệp trong hàm csv.Reader (). from csv import DictReader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to DictReader() to get the DictReader object csv_dict_reader = DictReader(read_obj) # iterate over each line as a ordered dictionary for row in csv_dict_reader: # row variable is a dictionary that represents a row in csv print(row) Đầu ra: {'Id': '21', 'Name': 'Mark', 'Course': 'Python', 'City': 'London', 'Session': 'Morning'} {'Id': '22', 'Name': 'John', 'Course': 'Python', 'City': 'Tokyo', 'Session': 'Evening'} {'Id': '23', 'Name': 'Sam', 'Course': 'Python', 'City': 'Paris', 'Session': 'Morning'} {'Id': '32', 'Name': 'Shaun', 'Course': 'Java', 'City': 'Tokyo', 'Session': 'Morning'}
['Id', 'Name', 'Course', 'City', 'Session'] ['21', 'Mark', 'Python', 'London', 'Morning'] ['22', 'John', 'Python', 'Tokyo', 'Evening'] ['23', 'Sam', 'Python', 'Paris', 'Morning'] ['32', 'Shaun', 'Java', 'Tokyo', 'Morning'] Nó hoạt động như thế nào? Nó thực hiện các bước sau,
Bằng cách này, chỉ có một dòng trong bộ nhớ tại một thời điểm trong khi lặp qua tệp CSV, điều này làm cho nó trở thành một giải pháp hiệu quả bộ nhớ. Trong ví dụ trước, chúng tôi đã lặp lại tất cả các hàng của tệp CSV bao gồm cả tiêu đề. Nhưng giả sử chúng tôi muốn bỏ qua tiêu đề và lặp qua các hàng còn lại của tệp CSV. Hãy để xem cách làm điều đó, Nó đã bỏ qua hàng tiêu đề của tệp CSV và lặp lại trên tất cả các hàng còn lại của tệp sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó. Trong lần lưu ban đầu, hàng tiêu đề trong một biến riêng biệt và được in vào cuối. from csv import DictReader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to DictReader() to get the DictReader object csv_dict_reader = DictReader(read_obj) # get column names from a csv file column_names = csv_dict_reader.fieldnames print(column_names) Đầu ra: ['Id', 'Name', 'Course', 'City', 'Session'] ['Id', 'Name', 'Course', 'City', 'Session'] ['21', 'Mark', 'Python', 'London', 'Morning'] ['22', 'John', 'Python', 'Tokyo', 'Evening'] ['23', 'Sam', 'Python', 'Paris', 'Morning'] ['32', 'Shaun', 'Java', 'Tokyo', 'Morning']Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó. Nó hoạt động như thế nào? from csv import DictReader # iterate over each line as a ordered dictionary and print only few column by column name with open('students.csv', 'r') as read_obj: csv_dict_reader = DictReader(read_obj) for row in csv_dict_reader: print(row['Id'], row['Name']) Đầu ra: from csv import reader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to reader() to get the reader object csv_reader = reader(read_obj) # Iterate over each row in the csv using reader object for row in csv_reader: # row variable is a list that represents a row in csv print(row)0
['Id', 'Name', 'Course', 'City', 'Session'] ['21', 'Mark', 'Python', 'London', 'Morning'] ['22', 'John', 'Python', 'Tokyo', 'Evening'] ['23', 'Sam', 'Python', 'Paris', 'Morning'] ['32', 'Shaun', 'Java', 'Tokyo', 'Morning'] Nó lặp lại trên tất cả các hàng của tập tin sinh viên.csv. Đối với mỗi hàng, nó lấy nội dung của hàng đó dưới dạng danh sách và in danh sách đó. Nó hoạt động như thế nào? from csv import reader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to reader() to get the reader object csv_reader = reader(read_obj) # Iterate over each row in the csv using reader object for row in csv_reader: # row variable is a list that represents a row in csv print(row)1 Đầu ra: from csv import reader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to reader() to get the reader object csv_reader = reader(read_obj) # Iterate over each row in the csv using reader object for row in csv_reader: # row variable is a list that represents a row in csv print(row)2 Với CSV.Reader, mỗi hàng tệp CSV được tìm nạp dưới dạng danh sách các giá trị, trong đó mỗi giá trị đại diện cho một giá trị cột. Vì vậy, chọn cột thứ 2 & 3 cho mỗi hàng, chọn các phần tử tại INDEX 1 và 2 từ danh sách. Ví dụ hoàn chỉnh như sau, from csv import reader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to reader() to get the reader object csv_reader = reader(read_obj) # Iterate over each row in the csv using reader object for row in csv_reader: # row variable is a list that represents a row in csv print(row)3 Output: from csv import reader # open file in read mode with open('students.csv', 'r') as read_obj: # pass the file object to reader() to get the reader object csv_reader = reader(read_obj) # Iterate over each row in the csv using reader object for row in csv_reader: # row variable is a list that represents a row in csv print(row)4 Làm cách nào để đọc một tệp CSV theo từng dòng trong Python?Sử dụng độc giả.. Bước 1: Để đọc các hàng trong Python, trước tiên, chúng ta cần tải tệp CSV trong một đối tượng. Vì vậy, để tải tệp CSV vào một đối tượng sử dụng phương thức Open () .. Bước 2: Tạo đối tượng đầu đọc bằng cách chuyển đối tượng tệp được tạo ở trên cho hàm đầu đọc .. Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng .. Làm cách nào để đọc một hàng tệp CSV theo hàng trong Python bằng Pandas?Đọc tệp CSV.. Tải CSV vào DataFrame: Nhập Pandas dưới dạng PD. df = pd.read_csv ('data.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 các hàng được trả lại tối đa: nhập pandas dưới dạng PD. .... Tăng số lượng hàng tối đa để hiển thị toàn bộ DataFrame: Nhập Pandas dưới dạng PD .. Làm cách nào để đọc tệp CSV trong dòng thứ hai trong Python?Ví dụ: Đọc tệp văn bản từ dòng 2 bằng islice () islice () có ba đối số. Đối số đầu tiên là tệp để đọc dữ liệu, thứ hai là vị trí từ đó việc đọc tệp sẽ bắt đầu và đối số thứ ba không có gì đại diện cho bước.
Làm cách nào để trích xuất một hàng từ tệp CSV trong Python?Bước 1: Để đọc các hàng trong Python, trước tiên, chúng ta cần tải tệp CSV trong một đối tượng.Vì vậy, để tải tệp CSV vào một đối tượng sử dụng phương thức Open ().Bước 2: Tạo một đối tượng đầu đọc bằng cách chuyển đối tượng tệp được tạo ở trên cho hàm đầu đọc.Bước 3: Sử dụng cho vòng lặp trên đối tượng đầu đọc để có được mỗi hàng. |