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

Mô-đun CSV Python:Hướng dẫn từng bước

Mô-đun CSV Python được sử dụng để xử lý các tệp CSV. Tệp CSV có thể chứa nhiều thông tin và mô-đun CSV cho phép Python đọc và ghi vào tệp CSV với reader() writer() các chức năng .


Đọc, viết và thao tác dữ liệu là một phần thiết yếu của lập trình. Do đó, có thể hữu ích nếu bạn biết cách xử lý tệp bằng Python, để bạn có thể đọc và ghi dữ liệu từ các nguồn bên ngoài.

Ví dụ:giả sử bạn là chủ một cửa hàng kem địa phương muốn tìm hiểu thêm về xu hướng của khách hàng. Bạn có thể sử dụng Python để phân tích dữ liệu bạn đã thu thập theo đơn đặt hàng của người dùng để tìm hiểu hương vị kem nào được ưa chuộng, số tiền mọi người chi tiêu cho những hương vị đó, v.v.

Đây là nơi mô-đun CSV của Python xuất hiện. Các tệp CSV được sử dụng để lưu trữ một lượng lớn dữ liệu và mô-đun CSV cho phép bạn phân tích cú pháp các tệp đó bằng Python. Trong hướng dẫn này, chúng ta sẽ khám phá cách đọc và ghi vào tệp CSV bằng cách sử dụng mô-đun CSV Python.

Trình làm mới CSV

Khi bạn đang làm việc với dữ liệu, bạn có thể có một danh sách các dữ liệu đó được phân tách bằng dấu phẩy. Ví dụ:bạn có thể có một danh sách các đơn đặt hàng kem có các giá trị được phân tách bằng dấu phẩy. Cấu trúc dữ liệu này được gọi là dữ liệu CSV hoặc Giá trị được phân tách bằng dấu phẩy.

Các tệp văn bản truyền thống có thể hữu ích khi bạn cần lưu trữ dữ liệu, nhưng chúng không thể được sử dụng để lưu trữ dữ liệu có cấu trúc. Mặt khác, tệp CSV cho phép bạn lưu trữ dữ liệu có cấu trúc ở định dạng bảng mà bạn có thể tham chiếu trong mã của mình, tương tự như cách bảng tính và cơ sở dữ liệu cho phép bạn lưu trữ dữ liệu có cấu trúc. Ví dụ:bạn có thể có tệp CSV lưu trữ hương vị kem hoặc thông tin nhà cung cấp.

Dưới đây là ví dụ về tệp CSV:

suppliers.csv

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles

Tệp này lưu trữ ba mục:tên của nhà cung cấp, địa chỉ của họ và sản phẩm mà họ cung cấp cho doanh nghiệp của chúng ta. Tệp của chúng tôi cũng lưu trữ hai dòng dữ liệu, một cho Hendersons Creamery và một cho Peterson Chocolate.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Vì dữ liệu của chúng tôi được cấu trúc trong một tệp CSV, chúng tôi có thể phân tích cú pháp thông qua chương trình Python và lấy dữ liệu từ các cột hoặc hàng riêng lẻ.

Mô-đun CSV Python

Mô-đun CSV của Python có thể được sử dụng để phân tích cú pháp dữ liệu CSV bằng Python. Vì vậy, nếu bạn có tệp CSV thông tin về nhà cung cấp, chẳng hạn, bạn có thể sử dụng mô-đun CSV để truy xuất và làm việc với dữ liệu đó.

CSV là một mô-đun Python được tích hợp sẵn, nhưng trước khi bắt đầu sử dụng, chúng ta phải nhập CSV vào chương trình của chúng tôi. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này:

import csv

Đọc tệp CSV

Trước khi có thể làm việc với dữ liệu trong tệp CSV, bạn cần đọc tệp. Mô-đun CSV đi kèm với một phương thức được gọi là reader() có thể được sử dụng để đọc tệp CSV trong chương trình của chúng tôi. Hàm đọc lấy từng dòng của một tệp được chỉ định và biến nó thành một danh sách các cột.

Giả sử chúng tôi có danh sách các nhà cung cấp kem trong một tệp có tên là suppliers.csv mà chúng tôi muốn đọc trong chương trình của mình. Nội dung của tệp như sau:

Hendersons Creamery, 123 Main Street, Cream
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones

Chúng tôi có thể truy xuất dữ liệu này bằng mã sau:

import csv
with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		print(c)

Có rất nhiều điều đang diễn ra ở đây, vì vậy chúng ta hãy chia nhỏ nó ra. Trên dòng đầu tiên, chúng tôi nhập csv , cho phép chúng tôi sử dụng các phương thức CSV trong mã của chúng tôi. Trên dòng tiếp theo, chúng tôi sử dụng with để mở tệp của chúng tôi và nói rằng tệp của chúng tôi phải được gán giá trị f .

Tiếp theo, chúng tôi sử dụng contents = csv.reader(f) để đọc nội dung tệp của chúng tôi, sử dụng csv.reader() chức năng. Cuối cùng, chương trình của chúng tôi tạo một vòng lặp for lặp qua từng dòng trong tệp CSV và in nó ra trình bao Python.

Chương trình của chúng tôi trả về như sau:

['Hendersons Creamery', ' 123 Main Street', ' Cream']
['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles']
['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']

Như bạn có thể thấy, chương trình của chúng tôi đã đọc nội dung tệp của chúng tôi và biến mỗi dòng thành một mảng. Bây giờ chúng tôi có dữ liệu này, chúng tôi có thể sử dụng nó trong chương trình của mình.

Giả sử rằng chúng tôi sẽ gửi thông báo hủy đơn đặt hàng của chúng tôi trong tuần tới vì cửa hàng sẽ đóng cửa. Chúng tôi có thể sử dụng mã này để lấy địa chỉ của từng nhà cung cấp để chúng tôi có thể gửi thông báo cho họ:

…

	for c in contents:
		print(c[1])

Chương trình của chúng tôi trả về:

123 Main Street
129 Second Street
17 Boston Avenue

Trong mã của chúng tôi, chúng tôi tạo một for vòng lặp đi qua từng dòng trong contents của chúng tôi Biến đổi. Sau đó, chúng tôi in ra giá trị của từng mục với số chỉ mục 1 , trong trường hợp này chứa địa chỉ của từng nhà cung cấp.

Bây giờ, giả sử chúng tôi muốn đọc dữ liệu từ tệp của mình thành một mảng. Đây là một chức năng phổ biến vì nó cho phép chúng tôi lưu trữ dữ liệu của mình trong một biến khác để sử dụng sau này. Đây là mã chúng tôi có thể sử dụng để thực hiện hành động này:

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		suppliers.append(c)

print(suppliers)

Mã của chúng tôi trả về như sau:

[['Hendersons Creamery', ' 123 Main Street', ' Cream'], ['Peterson Chocolate', ' 129 Second Street', ' Chocolate Sprinkles'], ['HW Smith and Co', ' 17 Boston Avenue', ' Ice Cream Cones']]

Hãy giải thích những gì đang diễn ra trong mã của chúng tôi. Chương trình của chúng tôi mở tệp suppliers.csv , đọc tệp, sau đó nối từng bản ghi vào mảng suppliers mà chúng tôi đã khai báo khi bắt đầu chương trình của mình. Sau đó, chương trình của chúng tôi in ra các suppliers có thể thay đổi .

Ghi vào tệp CSV

Mô-đun CSV chứa một phương thức có thể được sử dụng để ghi dữ liệu vào tệp CSV:writer() . writer() cho phép chúng tôi ghi dữ liệu vào tệp mà chúng tôi chỉ định để chúng tôi có thể lưu dữ liệu của mình để sử dụng sau này.

writer() hàm tạo một đối tượng mà chúng ta có thể sử dụng để ghi vào tệp. Sau đó, để ghi dữ liệu vào tệp của chúng tôi, chúng tôi sử dụng writerow() phương pháp.

Giả sử chúng tôi đã viết một chương trình bổ sung một giá trị mới cho mỗi bản ghi của nhà cung cấp. Giá trị này cho biết nhà cung cấp có phải là nhà cung cấp chính cho một sản phẩm nhất định hay không. Đây là mã chúng tôi có thể sử dụng để ghi dữ liệu chúng tôi có vào tệp:

import csv

suppliers = []

with open("suppliers.csv", "r") as f:
	contents = csv.reader(f)
	for c in contents:
		c.append("Yes")
		suppliers.append(c)

with open("new_suppliers.csv", "w") as f:
write_to_file = csv.writer(f)
for s in suppliers:
	write_to_file.writerow(s)

Phần bắt đầu của mã của chúng tôi rất giống với các ví dụ trước đó của chúng tôi; nó đọc tệp suppliers.csv và chuyển nội dung của nó đến suppliers mảng. Sự khác biệt duy nhất là hàm đọc thêm một giá trị mới được gọi là Yes cho từng mặt hàng trong mảng nhà cung cấp của chúng tôi. Giá trị này cho biết nhà cung cấp có phải là nhà cung cấp chính của một sản phẩm nhất định hay không.

Tiếp theo, chúng tôi mở một tệp mới có tên là new_suppliers.csv và viết nội dung của suppliers của chúng tôi vào tệp đó. Chúng tôi sử dụng writer() chức năng chuẩn bị tệp của chúng tôi để viết.

Sau đó, chúng tôi tạo một for vòng lặp đi qua suppliers của chúng tôi mảng và sử dụng writerow() để thêm từng nhà cung cấp vào new_suppliers.csv tệp.

Mã của chúng tôi trả về như sau:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

Tuy nhiên, không cần thiết phải lặp lại từng mục nếu chúng ta muốn ghi toàn bộ suppliers của mình biến thành một tệp. Thay vào đó, chúng ta có thể sử dụng writerows() phương pháp viết mọi mặt hàng trong suppliers biến thành new_suppliers.csv của chúng tôi tệp.

Đây là mã chúng tôi sẽ sử dụng:

…
	write_to_file = csv.writer(f)
	write_to_file.writerows(suppliers)

…

Mã của chúng tôi trả về:

new_suppliers.csv

Hendersons Creamery, 123 Main Street, Cream,Yes
Peterson Chocolate, 129 Second Street, Chocolate Sprinkles,Yes
HW Smith and Co, 17 Boston Avenue, Ice Cream Cones,Yes

Trích dẫn tệp CSV

Trong ví dụ trên, mã của chúng tôi đã viết suppliers mảng sang một tệp mới như nó đã xuất hiện.

Tuy nhiên, có thể có những trường hợp bạn muốn ghi mỗi giá trị vào một tệp trong dấu ngoặc kép. Ví dụ:bạn có thể có danh sách các nhà cung cấp trong đó một số tên nhà cung cấp chứa dấu phẩy, điều này sẽ dẫn đến tệp CSV của chúng tôi trở nên không đúng định dạng.

Mô-đun CSV chứa bốn hàm trích dẫn có thể được sử dụng để bao quanh các giá trị được ghi vào tệp của bạn trong dấu ngoặc kép để điều này không xảy ra. Các hàm này được truyền dưới dạng đối số cho csv.writer() và như sau:

  • csv.QUOTE_ALL :Bao quanh mỗi chuỗi trong trích dẫn
  • csv.QUOTE_NONNUMERIC :Trích dẫn tất cả các trường chuỗi
  • csv.QUOTE_MINIMAL :Trích dẫn các trường bằng các ký tự đặc biệt
  • csv.QUOTE_NONE :Không trích dẫn bất kỳ giá trị nào

Vì vậy, giả sử rằng chúng tôi muốn báo giá mọi giá trị trong suppliers của chúng tôi mảng khi nó được ghi vào tệp của chúng tôi. Chúng tôi có thể sử dụng mã sau:

…

write_to_file = csv.writer(f, quoting=csv.QUOTE_ALL)

…

Bây giờ, khi chúng tôi chạy chương trình của mình, new_suppliers.csv của chúng tôi tệp chứa những điều sau:

"Hendersons Creamery"," 123 Main Street"," Cream","Yes"
"Peterson Chocolate"," 129 Second Street"," Chocolate Sprinkles","Yes"
"HW Smith and Co"," 17 Boston Avenue"," Ice Cream Cones","Yes"

Kết luận

Đọc dữ liệu từ và ghi dữ liệu vào tệp cho phép bạn truy xuất và lưu trữ dữ liệu được tạo từ chương trình Python của bạn. Ví dụ:nếu bạn có thực đơn gồm các hương vị và giá kem mà bạn muốn làm việc trong chương trình Python, bạn có thể muốn lưu trữ dữ liệu trong một tệp.

Trong hướng dẫn này, chúng tôi đã khám phá những kiến ​​thức cơ bản về mô-đun CSV của Python và cách hoạt động của nó. Chúng tôi cũng đã thảo luận về cách đọc và ghi tệp bằng reader()writer() đối tượng.

Giờ đây, bạn đã sẵn sàng đọc dữ liệu và ghi dữ liệu vào tệp CSV bằng Python như một người chuyên nghiệp!

Các công ty trên toàn thế giới đang tuyển dụng những người biết cách viết mã bằng Python. Tải xuống ứng dụng Career Karma miễn phí hôm nay để tìm hiểu thêm về cách học Python có thể giúp bạn bắt đầu sự nghiệp trong lĩnh vực công nghệ!