Nội dung chính
- Trước khi đọc file trong python
- Đọc file csv trong python | csv.reader[]
- Hàm csv.reader trong Python
- Đọc file csv và lưu kết quả dưới dạng list bằng hàm csv.reader[]
- Lấy giá trị của hàng, cột và cell chỉ định trong file csv
- Chỉ định dấu phân cách delimiter
- Xử lý dấu ngoặc kép
- Đọc file CSV dưới dạng dictionary trong python | csv.DictReader
- Đọc file csv và lưu kết quả dưới dạng dictionary
- Tổng kết và thực hành
Hướng dẫn cách xử lý file CSV trong python. Bạn sẽ học được cách đọc file csv trong python dưới dạng list bằng hàm csv.reader hay dưới dạng dictionary bằng class csv.DictReader. Bạn cũng sẽ học được cách mở file csv trong python với các trường hợp đặc biệt như mở file CSV chứa dấu ngoặc kép, chứa header v.v.., qua đó có thể lấy giá trị của hàng, cột và cell trong file csv python sau bài học này.xử lý file CSV trong python. Bạn sẽ học được cách đọc file csv trong python dưới dạng list bằng hàm csv.reader hay dưới dạng dictionary bằng class csv.DictReader. Bạn cũng sẽ học được cách mở file csv trong python với các trường hợp đặc biệt như mở file CSV chứa dấu ngoặc kép, chứa header v.v.., qua
đó có thể lấy giá trị của hàng, cột và cell trong file csv python sau bài học này.
Trước khi đọc file trong python
Để đọc file csv trong python, trước hết chúng ta cần mở file đó bằng hàm open[] hoặc bằng câu lệnh with mà Kiyoshi đã hướng dẫn trong bài Mở và đóng file trong python.
Sau khi mở file và thu về một object file, chúng ta có thể sử dụng tới phương thức read để đọc file csv này như các loại file text khác trong python.
Giả sử chúng ta có file
import csv8 trong thư mục
with open['./user/user.csv'] as f:
reader = csv.reader[f]
import csv9 với nội dung sau đây:
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Chúng ta sẽ mở file csv này và thu về file object gồm nội dung file csv dưới dạng txt như sau:
with open['./user/user.csv'] as f:
print[f.read[]]
Bạn có thể thấy các giá trị trong nội dung file csv dưới dạng txt được phân cách bởi dấu phẩy
import csv0 trong ví dụ trên.
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
Về cơ bản thì đến bước này là chúng ta đã đọc xong file csv trong python rồi, tuy nhiên do kết quả đọc chỉ dưới dạng txt rất khó thao tác, nên chúng ta cần chuyển kết quả này về dạng list thông qua hàm csv.reader, hoặc dạng dictionary thông qua class csv.DictReader để có thể dễ dàng thực hiện các thao tác xử lý nội dung file csv.
Và để làm được điều đó thì chúng ta cần sử dụng tới hàm csv.reader[] trong module csv.
Đọc file csv trong python | csv.reader[]
Hàm csv.reader trong Python
Đọc file csv và lưu kết quả dưới dạng list bằng hàm csv.reader[]
Lấy giá trị của hàng, cột và cell chỉ định trong file csv
Chỉ định dấu phân cách delimiter
import csv
Xử lý dấu ngoặc kép
csv.reader[f]
Đọc file CSV dưới dạng dictionary trong python | csv.DictReader
Đọc file csv và lưu kết quả dưới dạng dictionary
Tổng kết và thực hành
import csv
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Đọc file csv và lưu kết quả dưới dạng list bằng hàm csv.reader[]
Lấy giá trị của hàng, cột và cell chỉ định trong file csv
Chỉ định dấu phân cách delimiter
Xử lý dấu ngoặc kép
Đọc file CSV dưới dạng dictionary trong python | csv.DictReader
import csv
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
Đọc file csv và lưu kết quả dưới dạng dictionary
Tổng kết và thực hành
with open['data/src/sample.csv'] as f:
reader = csv.reader[f]
l = [row for row in reader]
print[l]
Lấy giá trị của hàng, cột và cell chỉ định trong file csv
Chỉ định dấu phân cách delimiter
Ví dụ, chúng ta lấy giá trị của hàng thứ nhất và hàng thứ hai trong file csv như
sau:
print[l[0]]
print[l[1]]
Xử lý dấu ngoặc kép
print[l[0][0]]
print[l[1][2]]
Đọc file CSV dưới dạng dictionary trong python | csv.DictReader
l_hoandoi = [list[x] for x in zip[*l]]
print[l_hoandoi]
print[l_hoandoi[0]]
print[l_hoandoi[1]]
Đọc file csv và lưu kết quả dưới dạng dictionary
print[l[1][1]]
print[type[l[1][1]]]
float[l[1][1]]
int[l[1][1]]
Chỉ định dấu phân cách delimiter
Về mặc định, Class csv.reader[] dùng dấu phẩy
import csv0 làm dấu phân cách khi đọc file csv trong python. Và dấu phẩy
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv0 cũng được coi là dấu phân cách mặc định cho các file CSV.Tuy nhiên trong một số file CSV có thể dùng dấu khác để thay dấu phẩy làm dấu phân cách, khi đó để đọc được file csv này trong python, chúng ta cần thay đổi dấu phân cách bằng cách thay đổi giá trị đối số
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv4.Class csv.reader[] dùng dấu phẩy
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv0 làm dấu phân cách khi đọc file csv trong python. Và dấu phẩy
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv0 cũng được coi là dấu phân cách mặc định cho các file CSV.
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
Tuy nhiên trong một số file CSV có thể dùng dấu khác để thay dấu phẩy làm dấu phân cách, khi đó để đọc được file csv này trong python, chúng ta cần thay đổi dấu phân cách bằng cách thay đổi giá trị đối số
import csv4.
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
Ví dụ chúng ta cần đọc một file CSV có dấu phân cách là dấu cách như sau:
with open['./client/sample_space.txt'] as f:
print[f.read[]]
Để đọc được file CSV dạng này, chúng ta chỉ định
import csv5 như sau:
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv0
Tương tự nếu gặp phải file CSV có định dạng dấu phân cách dưới dạng tab, chúng ta đơn giản chỉ định
import csv6 là xong.
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
Xử lý dấu ngoặc kép
Trong một số file CSV, các giá trị cột được lưu giữ cùng với dấu ngoặc kép
import csv7 như sau:
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv1
Trong trường hợp này, về mặc định thì Class csv.reader[] giúp chúng ta bỏ đi các dấu ngoặc kép mà chỉ giữ lại phần giá trị ở giữa mà thôi, nên bạn không cần phải chú ý thêm.
import csv2
Tuy nhiên trong trường hợp bạn cần giữ lại các dấu ngoặc kép đó trong kết quả, hãy chỉ định thêm đối số
import csv8 khi đọc file csv trong python như sau:
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv3
Trong một số file CSV có chứa header như sau:
Sau khi mở file dưới dạng txt, kết quả như sau:
import csv4
Bạn có thể thấy dòng header trong file sẽ bắt đầu bởi một dấu phẩy
import csv0. Cách đọc file csv dạng này trong python cũng không có gì thay đổi đặc biệt cả, giống như ở phần trên chúng ta viết:
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv5
Điểm khác biệt duy nhất trong kết quả là một ký tự trống
with open['data/src/sample.csv'] as f:0 sẽ được thêm vào phần đầu kết quả mà thôi.
reader = csv.reader[f]
l = [row for row in reader]
print[l]
Đọc file CSV dưới dạng dictionary trong python | csv.DictReader
Đọc file csv và lưu kết quả dưới dạng dictionary
Ở phần trên chúng ta đã học cách đọc file CSV dưới dạng list bằng hàm csv.reader[] rồi.Ngoài cách trên, chúng ta còn có thể đọc file CSV dưới dạng dictionary trong python bằng class csv.DictReader với cách viết như sau:
Ngoài
cách trên, chúng ta còn có thể đọc file CSV dưới dạng dictionary trong python bằng class csv.DictReader với cách viết như sau:
import csv6
Ví dụ, chúng ta có file csv với nội dung sau đây:
with open['./user/user.csv'] as f:
print[f.read[]]
Khi đọc file CSV trong python bằng class csv.DictReader, về mặc định thì các giá trị trong hàng đầu tiên của file sẽ trở thành key của dictionary.
import csv8
Kết quả, một dictionary được trả về.
import csv9
Sau đó, bằng cách Chỉ định khóa và lấy giá trị trong dictionary python, chúng ta có thể lấy giá trị của các hàng, cột và cell theo ý muốn như sau:
import csv0
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Trong trường hợp file CSV không có hàng header, hoặc chúng ta muốn dùng giá trị key khác, hãy chỉ định đối số
with open['data/src/sample.csv'] as f:1 khi đọc file csv bằng class csv.DictReader như sau:
reader = csv.reader[f]
l = [row for row in reader]
print[l]
import csv1
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Kết quả:
import csv2
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Trong trường hợp file CSV có chứa header, ví dụ :
Sau khi mở file dưới dạng txt, kết quả như sau:
import csv4
Bạn có thể thấy dòng header trong file sẽ bắt đầu bởi một dấu phẩy
import csv0. Cách đọc file csv dạng này trong python cũng không có gì thay đổi đặc biệt cả, giống như ở phần trên chúng ta viết:
with open['./user/user.csv'] as f:
reader = csv.reader[f]
for row in reader:
print[row]
import csv4
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Kết quả:
import csv5
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Trong trường hợp file CSV có chứa header, ví dụ :
import csv6
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Kết quả:
import csv7
with open['./user/user.csv'] as f:
reader = csv.reader[f]
Trong trường hợp file CSV có chứa header, ví dụ :
Khi chúng ta mở file CSV này bằng class csv.DictReader, ký tự trắng
with open['data/src/sample.csv'] as f:2 sẽ trở thành một key trong kết quả như sau:đọc file csv trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
reader = csv.reader[f]
l = [row for row in reader]
print[l]
Để xóa đi ký tự trắng này trong kết quả, hãy sử dụng kèm lệnh Xóa phần tử trong dictionary python như sau:
Tổng kết và thực hành
Trên đây Kiyoshi đã hướng dẫn bạn về cách đọc file csv trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.>> python cơ bản - lập trình python cho người mới bắt đầu>>17. csv excel json xml pdf
Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo.Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!
HOME>> python cơ bản - lập trình python cho người mới bắt đầu>>17. csv excel json xml pdfBài sau