Hướng dẫn how do you create and edit csv file in python? - làm cách nào để tạo và chỉnh sửa tệp csv trong python?

Cách đọc và ghi các tệp CSV bằng Python

Xin chào! Tôi là Greg Sadetsky và tôi dạy các lớp Python tại Protech. Hôm nay, chúng tôi sẽ thực hiện một chút chương trình Python. Hướng dẫn này được thiết kế cho bất kỳ ai quan tâm đến Python, không có kinh nghiệm nào và tò mò tìm hiểu những gì có thể với một vài kỹ năng lập trình cơ bản.

Bạn có thể xem hướng dẫn đầy đủ bên dưới hoặc bỏ qua các phần riêng lẻ, ngay sau bảng nội dung.

Mục lục:

  • Mở tệp CSV
  • Vòng qua các hàng
  • Trích xuất thông tin từ tệp CSV
  • Tạo danh sách
  • Chuyển đổi danh sách thành các bộ
  • Cuối cùng, xuất ra sự khác biệt giữa 2 bộ

Giới thiệu về Python cho người mới bắt đầu

Đây là một tình huống ví dụ: Bạn là người tổ chức một bữa tiệc và đã tổ chức sự kiện này trong hai năm. Bạn có các tệp CSV (giá trị phân tách dấu phẩy) cho cả hai năm liệt kê những người tham dự mỗi năm. Bạn muốn biết những người tham dự đã tham dự bash thứ hai, nhưng không phải là người đầu tiên.

Thiết lập môi trường cho việc đọc tệp CSV Python

Chúng tôi có một khởi đầu tuyệt vời! Err ... bạn đã cài đặt Python trên máy tính của mình chưa? Nếu bạn đang chạy theo Mac OS X, hãy mở ứng dụng thiết bị đầu cuối từ thư mục tiện ích và loại

import csv
8Terminal application from the Utilities directory and type
import csv
8

Người dùng Windows nên theo dõi bài viết này để cài đặt nó. Đề xuất của tôi sẽ là có được phiên bản 2.7 mới nhất (ví dụ 2,7.6).

Khi bạn đã chạy Python thực thi, bạn sẽ thấy một dòng bắt đầu với ba dấu hiệu lớn hơn. Nó sẽ trông giống thế này:

>>>

Điều đó thật tuyệt! Hãy thử một số arithmetics cơ bản, ví dụ gõ vào

import csv
9 và nhấn phím Enter. Khi bạn đã thấy câu trả lời của trình thông dịch lại, bạn có thể thoát nó bằng cách nhập

import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

0 và nhấn Enter.

Mở tệp CSV với Python

Tạo một tệp văn bản mới trong trình soạn thảo yêu thích của bạn và đặt cho nó một tên hợp lý, ví dụ như new_attendees.py. Phần mở rộng .py là điển hình của các tệp chương trình Python.new_attendees.py. The .py extension is typical of Python program files.

Chúng tôi sẽ sử dụng các tệp dữ liệu CSV ví dụ sau (tất cả tên người tham dự và email được tạo ngẫu nhiên): người tham dự1.csv và người tham dự2.csv. Hãy tiếp tục và tải xuống các tập tin này vào máy tính của bạn. Đặt chúng trong cùng một thư mục trong đó tệp chương trình của bạn, new_attendees.py, sống.

Python cho phép bạn mở các tệp văn bản như thế này và đọc nội dung của chúng, tất cả cùng một lúc hoặc từng dòng. Trong trường hợp các tệp CSV, chúng tôi sẽ sử dụng một mô-đun tích hợp để Python sẽ đơn giản hóa việc phân tích cú pháp của chúng. Các mô -đun trong câu hỏi được gọi, đơn giản, CSV.csv.

Chúng tôi sẽ cần một vài điều để bắt đầu: Đầu tiên, vì chúng tôi sẽ sử dụng mô -đun CSV trong mã của chúng tôi, chúng tôi sẽ cần cho Python biết về điều này. Mặc dù Python cung cấp cho bạn một số mô-đun tích hợp, bạn cần khai báo rõ ràng những mô-đun nào bạn sẽ sử dụng. Điều này sẽ trở thành dòng đầu tiên của chương trình của chúng tôi:

import csv

Bây giờ chúng tôi đã sẵn sàng để viết phần còn lại của chương trình. Chúng tôi sẽ mở tệp CSV đầu tiên, lưu trữ tham chiếu đến tệp mở này dưới dạng


import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

1 và sau đó chuyển tham chiếu này đến mô -đun CSV. Cụ thể, hàm

import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

2 sẽ phân tích tệp mở và trả về một danh sách phân tích cú pháp các hàng. Đây là những gì nó muốn cho đến nay:


import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

Để chạy chương trình này, trong thiết bị đầu cuối của bạn, hãy vào thư mục chứa tệp chương trình Python và các tệp CSV của người tham dự và nhập


import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

3

Vòng lặp qua các hàng tệp CSV Python

Mặc dù mã ở trên là hợp lệ, nhưng nó hơi không thỏa mãn vì nó không xuất bất kỳ dữ liệu nào, khiến cho việc theo dõi một chút khó khăn ... hãy in ra các hàng có trong tệp CSV bằng cách lặp qua danh sách


import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

4.


import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row

Bạn sẽ thấy rằng chúng tôi đã thêm hai dòng - một dòng là vòng lặp xác định rằng đối với các dòng thụt sau đây, biến


import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

5 phải chứa từng phần tử từ danh sách và dòng thứ hai (được thụt vào, vì chúng tôi muốn dòng này là một phần của vòng lặp cho) sẽ in biến

import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

5 này.for loop which defines that for the following indented lines, the

import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

5 variable should contain each element from the list, and the second line (indented, since we want this line to be part of the for loop) which will print this

import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

5 variable.

Chúng ta nhận được gì? Sắc đẹp!


['Jackson', 'Thompson', '']
['Luke', 'Wallace', '']
['David', 'Wright', '']
['Nathaniel', 'Butler', '']
['Noah', 'Simpson', '']
['Eli', 'Mitchell', '']
...

Danh sách này nên tiếp tục. Vâng, đó là danh sách những người tham dự từ tệp tham dự1.csv! Hoan hô!

Trích xuất thông tin từ tệp CSV Python

Mỗi hàng mà chúng tôi đang lặp lại quá mức một đối tượng danh sách (____ 24 là danh sách các danh sách). Chúng ta có thể thấy các danh sách này (tương ứng với các hàng trong tệp CSV của người tham dự) được tạo thành từ ba yếu tố, thứ ba là địa chỉ e-mail mà chúng tôi muốn sử dụng để so sánh người tham dự.

Trong Python, dấu ngoặc vuông được sử dụng để truy cập một phần tử nằm ở một vị trí nào đó ("index") trong danh sách. Cụ thể, đối với danh sách


import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

8 chứa

import csv
f = open('attendees1.csv')
csv_f = csv.reader(f)

9, chúng tôi sẽ viết

import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row

0 để truy cập phần tử đầu tiên của nó (danh sách Python được chỉ số 0, giống như trong nhiều ngôn ngữ lập trình khác-xem điều này). Tất cả cùng nhau, như một ví dụ khác, để in yếu tố "thứ 2" (trong con người) của danh sách, bạn sẽ viết:


new_list = ['red, 'green', 'blue']
print new_list[1]

Điều này nên in ra màu xanh lá cây.green.

Quay lại tệp CSV người tham dự của chúng tôi, để in ra địa chỉ e-mail của mỗi người tham dự, chúng tôi sẽ sửa đổi mã một chút để nhận được:


import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row[2]

Chạy mã này và bạn sẽ xem địa chỉ e-mail của mỗi người tham dự được in ra. Hầu như ở đó!

Tạo danh sách cho các tệp CSV trong Python

Chúng tôi đã thành công trong việc truy cập và in địa chỉ e-mail từ mỗi hàng trong tệp CSV. Bây giờ chúng ta hãy tạo một đối tượng danh sách trống mà chúng ta sẽ điền với các địa chỉ e-mail đó. Điều này, một lần nữa, là cho phép chúng tôi so sánh những người tham dự năm thứ nhất với năm thứ hai.

Điều đầu tiên trước tiên - hãy tạo một danh sách trống. Một danh sách trống được gán cho một biến bằng cách viết như sau:

new_list = []

Để nối các phần tử vào danh sách này (vì một cái trống sẽ không được sử dụng nhiều), chúng tôi sẽ sử dụng phương thức


import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row

1 của danh sách. Xem xét danh sách được tạo ở trên, nối thêm một chuỗi vào nó sẽ xem xét điều này:

new_list.append("a sentence")

Nó có hoạt động không? Chúng tôi có thể xác minh bằng cách in đối tượng danh sách:

print new_list

Chúng ta nên xem:

import csv
0

tức là, một danh sách với một yếu tố trong đó! Tuyệt quá! Sửa đổi mã mà chúng tôi đã làm việc cho đến nay cung cấp cho chúng tôi điều này:

import csv
1

Sau khi chạy, mã này sẽ in một danh sách duy nhất (sẽ xuất hiện dưới dạng một dòng dài, duy nhất) với tất cả các email của người tham dự. Có gì thiếu không? Chà, mã trên chỉ chạy trên những người tham dự từ bên đầu tiên của năm đầu tiên (vì chúng tôi chỉ đọc tệp tham dự1.csv). Chúng ta nên thực hiện xử lý tương tự (nghĩa là, trích xuất các địa chỉ e-mail) trên tệp thứ hai.

Để giữ cho ví dụ này đơn giản, chúng tôi đã quyết định sao chép mã xử lý tệp tham dự1.csv và thực hiện gần như các hoạt động tương tự cho người tham dự2.csv. Một lời cảnh báo! Sao chép và dán mã như chúng tôi sẽ làm dưới đây được coi là thực hành xấu. Chúng tôi đang làm điều đó ở đây để giữ cho mã có thể đọc được - cách điển hình và tốt hơn sẽ là loại bỏ những gì phổ biến cho mã được sao chép/dán và đặt mã đó vào một khối có thể tái sử dụng (một hàm). Vì vậy, hãy nhớ rằng chúng tôi đang hy sinh chất lượng mã để dễ hiểu.A word of warning! Copying & Pasting code as we'll do below is considered bad practice. We're doing it here to keep the code readable -- the typical and better way would be to take out what's common to the code that's being copied/pasted and to put that code into a reusable block (a function). So, do keep in mind that we're sacrificing code quality for ease of understanding.

Sau khi được sửa đổi, mã ở trên bây giờ thực hiện các bước tương tự cho cả người tham dự1.csv và người tham dự.

import csv
2

Chuyển đổi danh sách thành các bộ cho tệp CSV Python

Hai bước nữa còn lại. Trước tiên chúng tôi sẽ chuyển đổi các danh sách chúng tôi có (


import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row

2 và

import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row

3) thành các bộ. Một tập hợp là một kiểu dữ liệu giống như một danh sách, trong đó nó lưu trữ một số đối tượng, nhưng với sự khác biệt mà các đối tượng không được đặt hàng và tất cả các đối tượng chứa đều có duy nhất. Vì vậy, một tập hợp có thể chứa 2, 5, 4 (không theo thứ tự cụ thể) nhưng không phải 2, 2, 4, 6, 6 vì các bộ chỉ chứa các giá trị duy nhất.2, 5, 4 (in no particular order) but not 2, 2, 4, 6, 6 since sets only contain unique values.

Bằng cách chuyển đổi danh sách của chúng tôi thành các bộ, chúng tôi sẽ có khả năng so sánh các giá trị của hai danh sách. Để chuyển đổi danh sách thành một tập hợp, chỉ cần chuyển danh sách sang hàm set (). Do đó:set() function. Thus:

import csv
3

... sẽ dẫn đến đầu ra sau:

import csv
4

Bạn có thể nhận thấy rằng giá trị 5 chỉ xuất hiện một lần trong tập hợp của chúng tôi, mặc dù nó có mặt hai lần trong my_list. Việc thêm các hoạt động chuyển đổi đã đặt vào mã của chúng tôi cung cấp cho chúng tôi:5 appears only once in our set, although it was present twice in my_list. Adding the set conversion operations to our code gives us:

import csv
5

Xuất ra sự khác biệt giữa 2 bộ

Một bước cuối cùng! Chúng tôi đã tạo ra các bộ trong số các địa chỉ e-mail của người tham dự cụ thể để so sánh chúng. Hãy làm điều đó! Bộ hỗ trợ nhiều hoạt động, một trong số đó sẽ cho chúng tôi biết các yếu tố nào của một bộ không có trong một bộ khác. Hãy thử một ví dụ đơn giản bằng cách tạo hai bộ:

import csv
6

Đúng như dự đoán, kết quả phải là 1, 7, 8, 9. Lưu ý rằng thứ tự mà các yếu tố kết quả này xuất hiện có thể trông khác nhau - điều này là do các bộ không được đặt hàng.1, 7, 8, 9. Note that the order in which these resulting elements appear might look different -- this is because sets are unordered.

Chúng tôi thấy rằng việc gọi phương thức


import csv

f = open('attendees1.csv')
csv_f = csv.reader(f)

for row in csv_f:
  print row

4 thực hiện những gì chúng tôi muốn làm với địa chỉ e-mail của người tham dự! Vì vậy, không có gì khó chịu, chúng ta hãy tiếp tục và xác định ai đã tham dự bữa tiệc thứ hai và không có mặt ở lần đầu tiên!

import csv
7

Bạn sẽ thấy một bộ 19 địa chỉ e-mail được in ra. Chúng ta làm được rồi! Bravo! Bất kỳ câu hỏi? Vui lòng hỏi dưới đây.

Muốn tìm hiểu thêm?

Protech cung cấp đào tạo Python riêng, được giao tại chỗ hoặc trực tuyến cho các nhóm từ 4 trở lên, cũng như các lớp học mở cửa cho công chúng:

  • Các khóa đào tạo Python
  • Lịch học lớp công khai

Làm thế nào để bạn chỉnh sửa tệp CSV trong Python?

Phương pháp 1..
Nhập mô -đun ..
Mở tệp CSV và đọc dữ liệu của nó ..
Tìm cột để được cập nhật ..
Cập nhật giá trị trong tệp CSV bằng hàm_csv () ..

Làm cách nào để tạo và ghi vào tệp CSV trong Python?

Viết các tệp CSV với CSV. Class DictWriter () có thể được sử dụng để ghi vào tệp CSV từ từ điển Python. Ở đây, tệp - tệp CSV nơi chúng tôi muốn viết. Tên trường - Một đối tượng danh sách nên chứa các tiêu đề cột chỉ định thứ tự trong đó dữ liệu nên được ghi trong tệp CSV.DictWriter() class can be used to write to a CSV file from a Python dictionary. Here, file - CSV file where we want to write to. fieldnames - a list object which should contain the column headers specifying the order in which data should be written in the CSV file.

Làm thế nào để bạn chỉnh sửa tệp CSV?

Mở tệp CSV bằng cách sử dụng trình hướng dẫn nhập văn bản..
Trong Windows Explorer, đổi tên tệp CSV với phần mở rộng tệp TXT.Ví dụ, đổi tên nhập khẩu.....
Trong Excel, mở tệp nhập.Chọn Tệp> Mở và duyệt đến tệp của bạn.....
Trình hướng dẫn nhập văn bản được hiển thị.....
Tệp của bạn sẽ được mở trong Excel ..

Làm cách nào để thêm dữ liệu vào tệp CSV hiện có trong Python?

Nối từ điển làm hàng vào tệp CSV hiện có bằng cách sử dụng DictWriter trong Python..
Nhập lớp Dictwriter của mô -đun CSV,.
Mở tệp CSV của chúng tôi ở chế độ Phụ lục và tạo đối tượng tệp,.
Vượt qua đối tượng tệp và danh sách các tên cột CSV cho CSV.....
Đối tượng DictWriter này có một Word Writerow () chấp nhận từ điển ..