Đọc ghi file csv trong python

Bởi Kiên Smart Data
0 Nhận xét
Đọc ghi file csv trong python

CSV là một chuẩn định dạng dữ liệu cưc kì đơn giản, trong đó các giá trị được ngăn cách nhau bởi một kí tự đặc biệt. Trong bài viết này SmartData sẽ hướng dẫn các bạn cách để đọc ghi file csv trong python

Cấu tạo của file CSV

Dưới đây là một ví dụ về file CSV, trong đó:

  • Dữ liệu được chia thành nhiều dòng
  • Dữ liêu trong cùng 1 dòng ngăn cách nhau bởi dấu “;”
Ví dụ về dữ liệu đươc lưu trong file CSV

Bạn có thể download file mẫu tại đây

Đọc file CSV với Python – Sử dụng thư viện CSV

Bạn có thể sử dụng thư viên csv để đọc file định dạng CSV trong Python.

import csv with open('./email.csv') as f: reader = csv.reader(f)

csv.reader sẽ trả về dữ liệu một đối tượng dạng reader. Ta có thể sử dụng vòng for loop để truy vấn dữ liệu trong đối tượng đó.

with open('./email.csv') as f: reader = csv.reader(f) for eachRow in reader: print(eachRow) # Dữ liêu trả về như sau: #['Login email;Identifier;First name;Last name'] #['laura@example.com;2070;Laura;Grey'] #['craig@example.com;4081;Craig;Johnson'] #['mary@example.com;9346;Mary;Jenkins'] #['jamie@example.com;5079;Jamie;Smith']

Truy vấn từng dòng dữ liệu

Để truy vấn từng dòng dữ liêu ta có thể làm như sau:

with open('./email.csv') as f: reader = csv.reader(f) data = [row for row in reader] # in ra giá trị từng dòng print(data[1]); # ['Login email;Identifier;First name;Last name']

Phân tích từng dòng dữ liêu thành dạng mảng

Python mặc định parse các dòng dữ liêu theo dấu phân cách là dấu phẩy. Bạn có thể chuyển đổi dấu phân cách(delimiter) mặc định thành dấu khác bằng cách thêm tham số delimiter vào đầu vào của hàm reader. Khi đó dữ liệu sẽ được trả ra theo dạng mảng ở từng dòng.

with open('./email.csv') as f: reader = csv.reader(f,delimiter=';') data = [row for row in reader] # in ra giá trị từng dòng theo dạng mảng print(data[1]); # ['laura@example.com', '2070', 'Laura', 'Grey']

Đọc file CSV với Python – Sử dụng DictReader

with open('./email.csv') as f: reader = csv.DictReader(f, delimiter=";") for row in reader: print(row) #{'Login email': 'laura@example.com', 'Identifier': '2070', 'First name': 'Laura', 'Last name': 'Grey'} #{'Login email': 'craig@example.com', 'Identifier': '4081', 'First name': 'Craig', 'Last name': 'Johnson'} #{'Login email': 'mary@example.com', 'Identifier': '9346', 'First name': 'Mary', 'Last name': 'Jenkins'} #{'Login email': 'jamie@example.com', 'Identifier': '5079', 'First name': 'Jamie', 'Last name': 'Smith'}

Ghi file CSV trong Python với DictWriter

Bạn có thể ghi file trong csv với DictWriter như sau:

import csv with open("test.csv", 'w', encoding='utf-8') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=["email", "name"]) writer.writeheader() writer.writerow({'email': 'magnus@gmail.com', 'name': 'Magnus'}) writer.writerow({'email': 'Caruana@hotmail.com', 'name': 'Carra'}) writer.writerow({'email': 'Ding@vn.mail', 'name': 'Dong'}) #fieldName là tên các cột # File đầu ra sẽ có dữ liêu như sau: #email,name #magnus@gmail.com,Magnus #Caruana@hotmail.com,Carra #Ding@vn.mail,Dong

Tổng kết

Trong bài viết trên SmartData đã hướng dẫn các bạn cách đọc ghi file csv trong Python sử dụng một số thư viện của Python. Các bạn có thể tham khảo thêm link sau để xem thêm các bài viết khác về Python của SmartData

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data