Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để đọc tệp CSV bằng Python?

Tệp CSV là viết tắt của tệp Giá trị Phân tách bằng Dấu phẩy. Nó là một tệp văn bản thuần túy trong đó các giá trị dữ liệu được phân tách bằng dấu phẩy và do đó thể hiện dữ liệu dạng bảng ở dạng văn bản thuần túy với sự trợ giúp của dấu phẩy. Tệp CSV có phần mở rộng .csv.

Đây là cách tệp CSV trông như thế nào -

Sr.No,Name,City,Age
1,Rahul,Kolkata,21
2,Karan,Amritsar,23
3,Priya,Bangalore,20

Để tạo tệp CSV, bạn có thể chỉ cần ghi tệp ở định dạng trên vào notepad và lưu tệp với phần mở rộng .csv.

Đọc tệp CSV bằng Python

Tệp csv được lưu trữ trên bộ nhớ cục bộ của bạn trong hệ thống có thể được đọc với sự trợ giúp của Python.

Chúng tôi cần nhập mô-đun csv bằng Python. Sau đó, chúng ta cần mở tệp ở chế độ đọc vì chúng ta cần đọc dữ liệu từ tệp. Hàm csv.reader () được sử dụng để đọc dữ liệu từ tệp CSV. Csv.reader () trả về một đối tượng trình đọc có thể lặp lại. Chúng tôi cần lặp lại đối tượng trình đọc có thể lặp lại được trả về để xử lý nội dung của tệp csv.

Thực hiện

Hãy để chúng tôi lưu trữ tệp csv trên hệ thống cục bộ của chúng tôi với tên “ttp.csv”. Nội dung của tệp được hiển thị trong ví dụ trên. Chúng ta cần đọc nội dung của tệp này và in nội dung của tệp theo dòng.

Ví dụ

import csv
with open('ttp.csv','r')as file:
   filecontent=csv.reader(file)
   for row in filecontent:
   print(row)

Lưu ý: Đảm bảo rằng tệp csv và chương trình Python ở cùng một vị trí trong hệ thống, tức là cùng một thư mục.

Đầu ra

['Sr.No', 'Name', 'City', 'Age']
['1', 'Rahul', 'Kolkata', '21']
['2', 'Karan', 'Amritsar', '23']
['3', 'Priya', 'Bangalore', '20']

Giải thích từng dòng

  • nhập csv - Cần phải nhập mô-đun csv bằng Python để sử dụng các chức năng có trong mô-đun này để đọc tệp.

  • mở tệp bằng open (). Open () có hai tham số, tên của tệp và chế độ mà bạn muốn mở tệp. Ở đây, chế độ là ‘r’ vì chúng ta cần đọc tệp.

  • Đọc nội dung của tệp bằng csv.reader (). Điều này trả về một đối tượng trình đọc có thể lặp lại được trả về một biến.

  • Lặp lại các nội dung tệp để in hàng nội dung tệp một cách khôn ngoan.

Tệp csv và chương trình Python đọc nó phải ở cùng một vị trí.

Yêu cầu tệp csv và chương trình Python ở cùng một vị trí hoặc trong cùng một thư mục trong hệ thống cục bộ của bạn. Nếu tệp ở một số vị trí khác, nó sẽ tạo ra một ngoại lệ và cho kết quả sau.

Traceback (most recent call last):
   with open('ttp.csv','r')as file:
FileNotFoundError: [Errno 2] No such file or directory: 'ttp.csv'

Đọc tệp CSV với dấu phân cách tùy chỉnh

Dấu phẩy không phải là dấu phân cách duy nhất được sử dụng trong các tệp csv. Các dấu phân cách khác được sử dụng là:,; , | v.v ... Nếu thay vì dấu phẩy, một số dấu phân cách khác được sử dụng, chúng tôi cần sửa đổi mã cho phù hợp.

Thực hiện

Để trong tệp csv ở trên, dấu phân cách được sử dụng là ‘:’ thay vì dấu phẩy. Do đó, mã sẽ được sửa đổi như bên dưới -

Ví dụ

import csv
with open('ttp.csv','r')as file:
   filecontent=csv.reader(file,delimiter=':')
   for row in filecontent:
      print(row)

Đầu ra

['Sr', 'No', 'Name', 'City', 'Age']
['1', 'Rahul', 'Kolkata', '21']
['2', 'Karan', 'Amritsar', '23']
['3', 'Priya', 'Bangalore', '20']

Sửa đổi duy nhất trong mã là chỉ định dấu phân cách được sử dụng trong tệp csv trong csv.reader (). Nếu dấu phân tách được sử dụng là ‘|’, thì dấu này cần được chỉ định làm dấu phân cách trong mã.

Nếu không được chỉ định, theo mặc định, mã sẽ chỉ coi dấu phẩy là dấu phân cách và vì dấu phẩy không có trong tệp nên toàn bộ hàng sẽ được coi là một mục duy nhất.

Nếu dấu phân tách không được chỉ định trong đoạn mã trên cho tệp ở trên bằng cách sử dụng dấu phân cách ‘:’, nó sẽ tạo ra kết quả sai sau.

['Sr:No:Name:City:Age']
['1:Rahul:Kolkata:21']
['2:Karan:Amritsar:23']
['3:Priya:Bangalore:20']

Như trong đầu ra ở trên, toàn bộ hàng được coi là một mục duy nhất.