csvwriter.writerow[fields]6_______0_______7
csvwriter.writerows[rows]4
csvwriter.writerows[rows]5
csvwriter.writerows[rows]6
csvwriter.writerows[rows]7
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]7
csvwriter.writerows[rows]9
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]9
with open[filename, 'w'] as csvfile: writer = csv.DictWriter[csvfile, fieldnames = fields]1
with open[filename, 'w'] as csvfile: writer = csv.DictWriter[csvfile, fieldnames = fields]2
csvwriter.writerow[fields]6_______0_______7
with open[filename, 'w'] as csvfile: writer = csv.DictWriter[csvfile, fieldnames = fields]5
with open[filename, 'w'] as csvfile: writer = csv.DictWriter[csvfile, fieldnames = fields]6
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]7
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]8
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]9
writer.writeheader[]0
writer.writeheader[]1
writer.writeheader[]2
print["Total no. of rows: %d"%[csvreader.line_num]]0
writer.writeheader[]4
print["Total no. of rows: %d"%[csvreader.line_num]]0_______6_______7
writer.writeheader[]7
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]9
writer.writeheader[]9
csvwriter.writerow[fields]1
csvwriter.writerow[fields]6
csvwriter.writerow[fields]7
writer.writerows[mydict]3
csvwriter.writerow[fields]9
writer.writerows[mydict]5
fields = csvreader.next[]5
writer.writerows[mydict]7
writer.writerows[mydict]8
print["Total no. of rows: %d"%[csvreader.line_num]]0_______0_______6
csvwriter.writerow[fields]7
fields = csvreader.next[]02
with open[filename, 'w'] as csvfile: writer = csv.DictWriter[csvfile, fieldnames = fields]6
đầu ra
Ví dụ trên sử dụng tệp CSV aapl. csv có thể tải xuống từ đây.
Chạy chương trình này với aapl. csv trong cùng thư mục
- Hãy để chúng tôi cố gắng hiểu đoạn mã này.
with open[filename, 'r'] as csvfile: csvreader = csv.reader[csvfile]
- Ở đây, trước tiên chúng tôi mở tệp CSV ở chế độ ĐỌC. Đối tượng tệp được đặt tên là csvfile. Đối tượng tệp được chuyển đổi thành csv. đối tượng người đọc. Chúng tôi lưu csv. đối tượng người đọc là csvreader
fields = csvreader.next[]
- csvreader là một đối tượng có thể lặp lại. Vì thế,. phương thức next[] trả về hàng hiện tại và chuyển iterator sang hàng tiếp theo. Vì hàng đầu tiên của tệp csv của chúng tôi chứa các tiêu đề [hoặc tên trường], nên chúng tôi lưu chúng trong một danh sách có tên là các trường
for row in csvreader: rows.append[row]
- Bây giờ, chúng tôi lặp qua các hàng còn lại bằng vòng lặp for. Mỗi hàng được thêm vào một danh sách gọi là hàng. Nếu bạn cố gắng in từng hàng, người ta có thể thấy rằng một hàng chẳng là gì ngoài một danh sách chứa tất cả các giá trị trường
print["Total no. of rows: %d"%[csvreader.line_num]]
- csvreader. line_num chẳng là gì ngoài một bộ đếm trả về số hàng đã được lặp lại
ví dụ 2. Ghi vào tệp CSV
con trăn
fields = csvreader.next[]04
fields = csvreader.next[]1
fields = csvreader.next[]2
fields = csvreader.next[]07
fields = csvreader.next[]8
fields = csvreader.next[]5
fields = csvreader.next[]10
fields = csvreader.next[]11
fields = csvreader.next[]12
fields = csvreader.next[]13
fields = csvreader.next[]12
fields = csvreader.next[]15
fields = csvreader.next[]12
fields = csvreader.next[]17
fields = csvreader.next[]18
fields = csvreader.next[]19
for row in csvreader: rows.append[row]1
fields = csvreader.next[]5
fields = csvreader.next[]22_______34_______23______34_______12
fields = csvreader.next[]25
fields = csvreader.next[]12
fields = csvreader.next[]27
fields = csvreader.next[]12
fields = csvreader.next[]29
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]33
fields = csvreader.next[]12
fields = csvreader.next[]25
fields = csvreader.next[]12
fields = csvreader.next[]27
fields = csvreader.next[]12
fields = csvreader.next[]39
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]43_______34_______12
fields = csvreader.next[]45
fields = csvreader.next[]12
fields = csvreader.next[]27
fields = csvreader.next[]12
fields = csvreader.next[]49
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]53
fields = csvreader.next[]12
fields = csvreader.next[]55
fields = csvreader.next[]12
fields = csvreader.next[]57_______34_______12
fields = csvreader.next[]59
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]63
fields = csvreader.next[]12
fields = csvreader.next[]65
fields = csvreader.next[]12
fields = csvreader.next[]67
fields = csvreader.next[]12
fields = csvreader.next[]69
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10_______34_______73
fields = csvreader.next[]12
fields = csvreader.next[]75
fields = csvreader.next[]12
fields = csvreader.next[]27
fields = csvreader.next[]12
fields = csvreader.next[]39
fields = csvreader.next[]80
fields = csvreader.next[]81
fields = csvreader.next[]4
fields = csvreader.next[]5
fields = csvreader.next[]84
fields = csvreader.next[]85
for row in csvreader: rows.append[row]5_______44_______6
for row in csvreader: rows.append[row]7
fields = csvreader.next[]89
for row in csvreader: rows.append[row]9
print["Total no. of rows: %d"%[csvreader.line_num]]0
fields = csvreader.next[]92
print["Total no. of rows: %d"%[csvreader.line_num]]0_______34_______94____34_______5
fields = csvreader.next[]96
print["Total no. of rows: %d"%[csvreader.line_num]]0
print["Total no. of rows: %d"%[csvreader.line_num]]0
fields = csvreader.next[]99
print["Total no. of rows: %d"%[csvreader.line_num]]0_______44_______01
print["Total no. of rows: %d"%[csvreader.line_num]]0
print["Total no. of rows: %d"%[csvreader.line_num]]0_______44_______04
print["Total no. of rows: %d"%[csvreader.line_num]]0_______44_______06
Hãy để chúng tôi cố gắng hiểu đoạn mã trên.
- các trường và hàng đã được xác định. các trường là một danh sách chứa tất cả các tên trường. các hàng là một danh sách các danh sách. Mỗi hàng là một danh sách chứa các giá trị trường của hàng đó
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]
- Ở đây, trước tiên chúng tôi mở tệp CSV ở chế độ VIẾT. Đối tượng tệp được đặt tên là csvfile. Đối tượng tệp được chuyển đổi thành csv. đối tượng nhà văn. Chúng tôi lưu csv. đối tượng nhà văn là csvwriter
csvwriter.writerow[fields]
- Bây giờ chúng tôi sử dụng phương thức writerow để viết hàng đầu tiên không có gì ngoài tên trường.
csvwriter.writerows[rows]
- Chúng tôi sử dụng phương thức writerows để viết nhiều hàng cùng một lúc
ví dụ 3. Viết từ điển vào tệp CSV
con trăn
fields = csvreader.next[]04
fields = csvreader.next[]1
fields = csvreader.next[]2
for row in csvreader: rows.append[row]10
for row in csvreader: rows.append[row]11
fields = csvreader.next[]5
for row in csvreader: rows.append[row]13
for row in csvreader: rows.append[row]14
for row in csvreader: rows.append[row]15
fields = csvreader.next[]25
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18
for row in csvreader: rows.append[row]15
fields = csvreader.next[]29
fields = csvreader.next[]12
for row in csvreader: rows.append[row]22
for row in csvreader: rows.append[row]23
for row in csvreader: rows.append[row]15
fields = csvreader.next[]23
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
for row in csvreader: rows.append[row]15
fields = csvreader.next[]27
for row in csvreader: rows.append[row]30
csvwriter.writerow[fields]1
for row in csvreader: rows.append[row]32_______44_______14______44_______15
fields = csvreader.next[]25
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18_______44_______15
fields = csvreader.next[]39
fields = csvreader.next[]12
for row in csvreader: rows.append[row]41____44_______23____44_______15
fields = csvreader.next[]33
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
for row in csvreader: rows.append[row]15
fields = csvreader.next[]27
for row in csvreader: rows.append[row]30
csvwriter.writerow[fields]1
for row in csvreader: rows.append[row]32_______44_______14
for row in csvreader: rows.append[row]15
fields = csvreader.next[]45
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18_______44_______15
fields = csvreader.next[]49
fields = csvreader.next[]12
for row in csvreader: rows.append[row]41
for row in csvreader: rows.append[row]23
for row in csvreader: rows.append[row]15
fields = csvreader.next[]43
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
for row in csvreader: rows.append[row]15
fields = csvreader.next[]27
for row in csvreader: rows.append[row]30
csvwriter.writerow[fields]1
for row in csvreader: rows.append[row]32_______44_______14
for row in csvreader: rows.append[row]15
fields = csvreader.next[]55
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18_______44_______15
fields = csvreader.next[]59
fields = csvreader.next[]12
for row in csvreader: rows.append[row]41
for row in csvreader: rows.append[row]23
for row in csvreader: rows.append[row]15
fields = csvreader.next[]53
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
for row in csvreader: rows.append[row]15
fields = csvreader.next[]57
for row in csvreader: rows.append[row]30
csvwriter.writerow[fields]1
for row in csvreader: rows.append[row]32_______44_______14
for row in csvreader: rows.append[row]15
fields = csvreader.next[]65
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18
for row in csvreader: rows.append[row]15
fields = csvreader.next[]69
fields = csvreader.next[]12
for row in csvreader: rows.append[row]41____44_______23
for row in csvreader: rows.append[row]15
fields = csvreader.next[]63
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
for row in csvreader: rows.append[row]15
fields = csvreader.next[]67
for row in csvreader: rows.append[row]30
csvwriter.writerow[fields]1
for row in csvreader: rows.append[row]32_______44_______14
for row in csvreader: rows.append[row]15
fields = csvreader.next[]75
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18
for row in csvreader: rows.append[row]15
fields = csvreader.next[]39
fields = csvreader.next[]12
for row in csvreader: rows.append[row]41
for row in csvreader: rows.append[row]23
for row in csvreader: rows.append[row]15
fields = csvreader.next[]73
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
for row in csvreader: rows.append[row]15
fields = csvreader.next[]27
print["Total no. of rows: %d"%[csvreader.line_num]]25
fields = csvreader.next[]07
fields = csvreader.next[]8
fields = csvreader.next[]5
fields = csvreader.next[]10_______44_______23______34_______12
for row in csvreader: rows.append[row]14
fields = csvreader.next[]12
for row in csvreader: rows.append[row]27
fields = csvreader.next[]12
for row in csvreader: rows.append[row]18
fields = csvreader.next[]18
fields = csvreader.next[]81
fields = csvreader.next[]4
fields = csvreader.next[]5
fields = csvreader.next[]84
fields = csvreader.next[]85
for row in csvreader: rows.append[row]5_______44_______6
for row in csvreader: rows.append[row]7
fields = csvreader.next[]89
for row in csvreader: rows.append[row]9
print["Total no. of rows: %d"%[csvreader.line_num]]0_______21_______49
print["Total no. of rows: %d"%[csvreader.line_num]]0_______21_______51
fields = csvreader.next[]5
print["Total no. of rows: %d"%[csvreader.line_num]]53
fields = csvreader.next[]5
print["Total no. of rows: %d"%[csvreader.line_num]]55
print["Total no. of rows: %d"%[csvreader.line_num]]0
print["Total no. of rows: %d"%[csvreader.line_num]]0_______21_______58
print["Total no. of rows: %d"%[csvreader.line_num]]0_______21_______60
print["Total no. of rows: %d"%[csvreader.line_num]]0
print["Total no. of rows: %d"%[csvreader.line_num]]0_______21_______63
print["Total no. of rows: %d"%[csvreader.line_num]]0_______21_______65
Trong ví dụ này, chúng tôi viết từ điển mydict vào tệp CSV.
with open[filename, 'w'] as csvfile: writer = csv.DictWriter[csvfile, fieldnames = fields]
- Tại đây, đối tượng tệp [csvfile] được chuyển đổi thành đối tượng DictWriter. Ở đây, chúng tôi chỉ định tên trường làm đối số.
writer.writeheader[]
- phương thức writeheader chỉ cần ghi hàng đầu tiên của tệp csv của bạn bằng tên trường được chỉ định trước
writer.writerows[mydict]
- phương thức writerows chỉ ghi tất cả các hàng nhưng trong mỗi hàng, nó chỉ ghi các giá trị [không phải khóa]
Vì vậy, cuối cùng, tệp CSV của chúng tôi trông như thế này.
tệp csv
Hãy xem xét rằng tệp CSV trông như thế này ở dạng văn bản thuần túy.
hồ sơ đại học
- Chúng tôi nhận thấy rằng dấu phân cách không phải là dấu phẩy mà là dấu chấm phẩy. Ngoài ra, các hàng được phân tách bằng hai dòng mới thay vì một. Trong những trường hợp như vậy, chúng ta có thể chỉ định dấu phân cách và dấu kết thúc dòng
Ví dụ 4. Cách lưu trữ email trong tệp CSV?
Python3
fields = csvreader.next[]04
fields = csvreader.next[]1
fields = csvreader.next[]2
fields = csvreader.next[]07
fields = csvreader.next[]8
fields = csvreader.next[]5
fields = csvreader.next[]10_______34_______11
fields = csvreader.next[]12
print["Total no. of rows: %d"%[csvreader.line_num]]75
fields = csvreader.next[]18
fields = csvreader.next[]19
for row in csvreader: rows.append[row]1
fields = csvreader.next[]5
fields = csvreader.next[]22_______34_______23
fields = csvreader.next[]12
print["Total no. of rows: %d"%[csvreader.line_num]]83
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]33
fields = csvreader.next[]12
print["Total no. of rows: %d"%[csvreader.line_num]]89
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]43
fields = csvreader.next[]12
print["Total no. of rows: %d"%[csvreader.line_num]]95
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]53
fields = csvreader.next[]12
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]01
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]63
fields = csvreader.next[]12
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]07
fields = csvreader.next[]30
csvwriter.writerow[fields]1
fields = csvreader.next[]10
fields = csvreader.next[]73
fields = csvreader.next[]12
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]13
fields = csvreader.next[]80
fields = csvreader.next[]81
fields = csvreader.next[]4____34_______5
with open[filename, 'w'] as csvfile: csvwriter = csv.writer[csvfile]18
fields = csvreader.next[]85
for row in csvreader: rows.append[row]5_______44_______6
for row in csvreader: rows.append[row]7
fields = csvreader.next[]89
for row in csvreader: rows.append[row]9
print["Total no. of rows: %d"%[csvreader.line_num]]0
fields = csvreader.next[]92
print["Total no. of rows: %d"%[csvreader.line_num]]0_______34_______94____34_______5
fields = csvreader.next[]96
print["Total no. of rows: %d"%[csvreader.line_num]]0
print["Total no. of rows: %d"%[csvreader.line_num]]0
fields = csvreader.next[]99
print["Total no. of rows: %d"%[csvreader.line_num]]0_______44_______01
print["Total no. of rows: %d"%[csvreader.line_num]]0
print["Total no. of rows: %d"%[csvreader.line_num]]0_______44_______04
print["Total no. of rows: %d"%[csvreader.line_num]]0_______44_______06
đầu ra
Email trong csv
Giải trình
Ở đây chúng tôi đang nhập mô-đun csv và sau đó chỉ cần sử dụng cùng một khái niệm lưu trữ email ở dạng thực thể được phân tách bằng dấu phẩy cùng với tên của chúng. Chúng tôi đang mở hàm open[] của tệp và chỉ định rằng chúng tôi cần tệp đó dưới dạng tệp csv, sau đó ghi từng cột vào tệp csv bằng cách sử dụng đối tượng nhà văn