Lưu tệp csv vào Desktop 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 ta sẽ làm một chút về lập trình Python. Hướng dẫn này được thiết kế cho bất kỳ ai quan tâm đến Python, có ít hoặc không có kinh nghiệm và tò mò muốn 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 từng phần riêng lẻ, ngay sau mục lục

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 tập hợp
  • 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 được hai năm. Bạn có tệp CSV (các giá trị được phân tách bằng 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ự nào đã tham dự lần thứ hai, nhưng không phải lần đầu tiên

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

Chúng tôi đang có một khởi đầu tuyệt vời. sai. bạn đã cài đặt Python trên máy tính của mình chưa?

Người dùng Windows nên làm theo bài viết này để cài đặt nó. Khuyến nghị của tôi là lấy 2 bản mới nhất. 7 phiên bản (2. 7. 6 chẳng hạn)

Khi bạn đã chạy chương trình thực thi Python, bạn sẽ thấy một dòng bắt đầu bằng ba dấ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ố phép tính cơ bản, chẳng hạn như nhập vào

import csv
9 và nhấn phím Enter. Khi bạn đã thấy thông dịch viên trả lời lại, bạn có thể thoát khỏi 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 bằng Python

Tạo một tệp văn bản mới trong trình chỉnh sửa yêu thích của bạn và đặt cho nó một cái tên hợp lý, chẳng hạn như new_attendees. py. Các. phần mở rộng py là điển hình của các tệp chương trình Python

Chúng tôi sẽ sử dụng các tệp dữ liệu CSV mẫu sau (tất cả tên và email của người tham dự đượ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 các tệp này xuống máy tính của bạn. Đặt chúng trong cùng thư mục chứa tệp chương trình của bạn, new_attendees. py, cuộc 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 một. Trong trường hợp tệp CSV, chúng tôi sẽ sử dụng một mô-đun được tích hợp sẵn trong Python để đơn giản hóa quá trình phân tích cú pháp của chúng. Mô-đun trong câu hỏi được gọi đơn giản là csv

Chúng tôi sẽ cần một số thứ để bắt đầu. đầu tiên, vì chúng tôi sẽ sử dụng mô-đun csv trong mã của mình, chúng tôi 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, nhưng bạn cần khai báo rõ ràng những mô-đun nào bạn sẽ sử dụng. Đâ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 điểm danh đầu tiên, lưu trữ tham chiếu đến tệp đang 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 cú pháp tệp đang mở và trả về danh sách các hàng được phân tích cú pháp. Đâ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à tệp CSV của người tham dự, rồi nhập


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

3

Lặp qua các hàng của tệp CSV Python

Mặc dù mã ở trên là hợp lệ, nhưng có một chút không hài lòng vì nó không xuất bất kỳ dữ liệu nào, khiến bạn hơi khó theo dõi. 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

>>>
0

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


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

5 sẽ chứa từng phần tử trong danh sách và dòng thứ hai (được thụt vào, vì chúng tôi muốn dòng này

đổi lại chúng ta được gì?

>>>
3

Danh sách này nên tiếp tục và tiếp tục. Vâng, đó là danh sách những người tham dự từ những người tham dự1. tệp 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 qua là một đối tượng danh sách (


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

4 là một 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 thành phần, thành phần thứ ba là địa chỉ email mà chúng tôi muốn sử dụng để so sánh những 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 ở vị trí nào đó ("chỉ mục") 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
>>>
00 để truy cập phần tử đầu tiên của nó (danh sách Python được lập chỉ mục 0, giống như trong nhiều ngôn ngữ lập trình khác -- xem phần này). Tất cả cùng nhau, như một ví dụ khác, để in phần tử "thứ 2" (theo cách nói của con người) của một danh sách, bạn sẽ viết

>>>
8

Điều này sẽ in ra màu xanh lá cây

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 để có được

>>>
9

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

Tạo danh sách cho tệp CSV bằng Python

Chúng tôi đã thành công trong việc truy cập và in địa chỉ email 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 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 đầu tiên với những người tham dự 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

import csv
0

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

>>>
01 của danh sách. Xem xét danh sách đã tạo ở trên, thêm một chuỗi vào nó sẽ trông như thế này

import csv
2

Nó có hoạt động không?

import csv
3

chúng ta nên xem

import csv
0

i. e, một danh sách có một phần tử trong đó. Tuyệt quá. Sửa đổi mã mà chúng tôi đã làm việc cho đến nay mang lại 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 (sẽ xuất hiện dưới dạng một dòng dài) với tất cả email của những người tham dự. Có gì thiếu không? . tệp csv). Chúng ta nên thực hiện quá trình xử lý tương tự (i. e. , trích xuất đị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 người tham dự1. csv và thực hiện các thao tác gần như tương tự cho người tham dự2. csv. Một lời cảnh báo. Việc sao chép và dán mã như chúng tôi sẽ thực hiện bên dưới được coi là thông lệ không tốt. 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 là loại bỏ những điểm chung của mã đang được sao chép/dán và đặt mã đó vào một khối có thể tái sử dụng (một chức năng). Vì vậy, hãy nhớ rằng chúng tôi đang hy sinh chất lượng mã để dễ hiểu

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

import csv
2

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

Còn hai bước nữa. Trước tiên, chúng tôi sẽ chuyển đổi các danh sách mà chúng tôi có (______102 và

>>>
03) thành các bộ. Tập hợp là một kiểu dữ liệu hơi giống danh sách, ở chỗ nó lưu trữ một số đối tượng, nhưng có điểm khác biệt là các đối tượng không có thứ tự và tất cả các đối tượng chứa trong đó là 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 chứa 2, 2, 4, 6, 6 vì các tập hợp chỉ chứa các giá trị duy nhất

Bằng cách chuyển đổi danh sách của chúng tôi thành 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 một danh sách thành một tập hợp, chỉ cần chuyển danh sách tới hàm set(). Như vậy

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ó đã xuất hiện 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 sẽ cho chúng tôi

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 các bộ địa chỉ email của những người tham dự cụ thể để so sánh chúng. Hãy làm điều đó. Các bộ hỗ trợ nhiều thao tác, một trong số đó sẽ cho chúng ta biết phần 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

Như mong đợi, kết quả phải là 1, 7, 8, 9. Lưu ý rằng thứ tự xuất hiện của các phần tử kết quả này có thể trông khác -- điều này là do các tập hợp không có thứ tự

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

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

import csv
7

Bạn sẽ thấy một bộ gồm 19 địa chỉ email được in ra. Chúng ta làm được rồi. hoan hô. Bất kỳ câu hỏi?

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

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