Python tạo tập tin phân cách bằng đường ống
(Nhà tài trợ) Bắt đầu học Python với hướng dẫn Giới thiệu về Python miễn phí của DataCamp. Tìm hiểu Khoa học dữ liệu bằng cách hoàn thành các thử thách mã hóa tương tác và xem video của các chuyên gia hướng dẫn. Bắt đầu bây giờ Show
Cập nhật ngày 07 tháng 1 năm 2020 Tệp CSV là gì?CSV (Các giá trị được phân tách bằng dấu phẩy) là định dạng trao đổi dữ liệu phổ biến được các ứng dụng sử dụng để tạo và sử dụng dữ liệu. Một số định dạng trao đổi dữ liệu nổi tiếng khác là XML, HTML, JSON, v.v. Tệp CSV là một tệp văn bản đơn giản trong đó mỗi dòng chứa danh sách các giá trị (hoặc trường) được phân tách bằng dấu phẩy Mặc dù thuật ngữ "Dấu phẩy" xuất hiện trong chính tên định dạng, nhưng bạn sẽ gặp các tệp CSV trong đó dữ liệu được phân tách bằng tab (_______07) hoặc dấu gạch ngang ( id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]8) hoặc bất kỳ ký tự nào khác có thể được sử dụng làm dấu phân cách Dòng đầu tiên của tệp CSV đại diện cho tiêu đề chứa danh sách tên cột trong tệp. Tiêu đề là tùy chọn nhưng rất khuyến khích Tệp CSV thường được sử dụng để biểu thị dữ liệu dạng bảng. Ví dụ, hãy xem xét bảng sau IDTênQuốc giaMãQuậnDân số1KabulAFGKabol17800002QandaharAFGQandahar2375003HeratAFGHerat1868004Mazar-e-SharifAFGBalkh1278005AmsterdamNLDNoord-Holland731200 Bảng trên có thể được biểu diễn bằng định dạng CSV như sau "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200" Nếu các giá trị trong tệp CSV của bạn chứa dấu phẩy, thì giá trị đó phải được đặt trong dấu ngoặc kép. Ví dụ TênTuổiĐịa chỉJerry102776 McDowell Street, Nashville, TennesseeTom203171 Jessie Street, Westerville, OhioMike301818 Sherman Street, Hope, Kansas Để giữ lại dấu phẩy bên trong trường Địa chỉ, hãy đặt nó trong dấu ngoặc kép, như sau Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas" Tương tự, nếu bạn có dấu ngoặc kép được nhúng bên trong một trường, trường đó phải được thoát bằng một ký tự dấu ngoặc kép khác. Nếu không, họ sẽ không được giải thích một cách chính xác. Ví dụ IdUserComment1BobJohn đã nói "Xin chào thế giới"2Tom"Nhà ảo thuật" Để giữ nguyên dấu ngoặc kép bên trong trường Nhận xét, hãy sử dụng hai dấu ngoặc kép Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician"" Điều quan trọng cần lưu ý là định dạng CSV không được chuẩn hóa hoàn toàn. Vì vậy, các quy tắc chúng tôi vừa đề cập là không phổ biến. Thỉnh thoảng, bạn sẽ gặp các tệp CSV có cách thể hiện các trường khác nhau May mắn thay, để giúp mọi việc dễ dàng hơn với chúng ta, Python cung cấp mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 Trước khi chúng tôi bắt đầu đọc và ghi tệp CSV, bạn nên hiểu rõ về cách làm việc với tệp nói chung. Nếu bạn cần xem lại, hãy cân nhắc đọc cách đọc và ghi tệp bằng Python Mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 được sử dụng để đọc và ghi tệp. Nó chủ yếu cung cấp các lớp và chức năng sau
Hãy bắt đầu với hàm import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 Đọc tệp CSV bằng trình đọc()Hàm import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 lấy một đối tượng tệp và trả về một đối tượng import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])7 có thể được sử dụng để lặp lại nội dung của tệp CSV. Cú pháp của hàm import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 như sau cú pháp. reader(fileobj [, method='excel' [, **fmtparam] ]) -> _csv. người đọc Đối sốMô tả import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])9(bắt buộc) Nó đề cập đến đối tượng tệp id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]60(tùy chọn) Phương ngữ đề cập đến các cách khác nhau để định dạng tài liệu CSV. Theo mặc định, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 sử dụng định dạng giống như Microsoft Excel. Chúng tôi sẽ thảo luận chi tiết về phương ngữ sau trong bài viết này. id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]62(tùy chọn) Nó đề cập đến tập hợp các đối số từ khóa để tùy chỉnh phương ngữ (xem phần tiếp theo) Giả sử chúng ta có tệp CSV sau người lao động. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 Đây là cách đọc tệp CSV này "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"0 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"1 Lưu ý rằng mỗi dòng trong tệp CSV được trả về dưới dạng danh sách các chuỗi Để lấy dữ liệu từ các trường nhất định, bạn có thể sử dụng lập chỉ mục. Ví dụ "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"2 Sản lượng dự kiến id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected] Nếu bạn muốn bỏ qua tiêu đề, hãy gọi hàm tích hợp id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]63 trên đối tượng import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])7 và sau đó lặp qua các dòng còn lại như bình thường import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2]) Sản lượng dự kiến id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]6 Tùy chỉnh trình đọc()Theo mặc định, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 hoạt động theo định dạng được sử dụng bởi Microsoft excel, nhưng bạn cũng có thể xác định định dạng của riêng mình bằng cách sử dụng thứ gọi là Phương ngữ Sau đây là một số đối số bổ sung mà bạn có thể chuyển đến hàm import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 để tùy chỉnh hoạt động của nó
đối số dấu phân cáchnhân viên_pipe. csv Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"0 Tệp này sử dụng ký tự ống ( id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]8) làm dấu phân cách. Đây là cách đọc tệp CSV này Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"1 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"1 đối số skipinitialspaceNgười chơi bóng chày. csv Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"3 Tệp CSV này chứa khoảng trắng sau dấu phẩy ( id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]68). Để đọc chính xác tệp CSV này, hãy đặt id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]69 thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"14, như sau Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"4 Sản lượng dự kiến Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"5 đối số quotecharđịa chỉ. csv Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"6 Có hai điều cần lưu ý trong tập tin này. Đầu tiên, trường địa chỉ được bao bọc bằng cách sử dụng dấu nháy đơn ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"19) thay vì dấu nháy kép Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"04 (là giá trị mặc định). Thứ hai, có khoảng trắng sau dấu phẩy ( id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]68) Nếu bạn cố gắng đọc tệp này mà không thay đổi ký tự trích dẫn, bạn sẽ nhận được đầu ra như sau Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"7 Sản lượng dự kiến Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"8 Lưu ý rằng địa chỉ được chia thành ba trường, điều này chắc chắn là không chính xác. Để khắc phục sự cố, chỉ cần thay đổi ký tự trích dẫn thành một trích dẫn ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"19) bằng cách sử dụng đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"03 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"9 Sản lượng dự kiến Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""0 đối số escapecharbình luận. csv Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""1 Tệp này sử dụng ký tự dấu gạch chéo ngược ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"24) để thoát khỏi dấu ngoặc kép được nhúng. Tuy nhiên, theo mặc định, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 mặc định sử dụng ký tự trích dẫn kép để thoát khỏi ký tự trích dẫn kép Nếu cố đọc tệp này bằng các tùy chọn mặc định, bạn sẽ nhận được đầu ra như thế này Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""2 Sản lượng dự kiến Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""3 Đầu ra này chắc chắn là không mong muốn. Để có đầu ra chính xác, hãy thay đổi ký tự thoát bằng cách sử dụng đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"10, như sau Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""4 Sản lượng dự kiến Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""5 trích dẫn kép đối sốđối thoại. csv Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""6 Tệp này sử dụng dấu ngoặc kép để thoát khỏi các ký tự dấu ngoặc kép được nhúng trong trường. Theo mặc định, Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"13 được đặt thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"14. Kết quả là, trong khi đọc hai dấu ngoặc kép liên tiếp được hiểu là một Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""7 Sản lượng dự kiến Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""8 Tuy nhiên, nếu bạn đặt Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"13 thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"00, các dấu ngoặc kép liên tiếp sẽ xuất hiện ở đầu ra Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""9 Sản lượng dự kiến id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]90 Viết tệp CSV bằng trình ghi ()Để ghi dữ liệu vào tệp CSV, chúng tôi sử dụng chức năng import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])2. Nó chấp nhận cùng một đối số như hàm import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 nhưng trả về một đối tượng người viết (i. e Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"33) cú pháp. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"34 Đối sốMô tả import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])9(bắt buộc) Nó đề cập đến đối tượng tệp id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]60(tùy chọn) Phương ngữ đề cập đến các cách khác nhau để định dạng tài liệu CSV. Theo mặc định, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 sử dụng định dạng giống như Microsoft Excel. Chúng tôi sẽ thảo luận chi tiết về phương ngữ sau trong bài viết này. id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]62(tùy chọn) Tham số định dạng, hoạt động giống như chức năng của import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 Ví dụ nhà văn cung cấp hai phương thức sau để ghi dữ liệu MethodDescription Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"40Viết một hàng dữ liệu và trả về số ký tự đã viết. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"41 phải là một chuỗi các chuỗi và số. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"42Ghi nhiều hàng dữ liệu và trả về Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"12. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"44 phải là một dãy Dưới đây là các ví dụ ví dụ 1. Sử dụng Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"45 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]91 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]92 ví dụ 2. Sử dụng Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"46 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]93 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]94 Đầu ra được tạo bởi cả hai danh sách sẽ giống nhau và có vẻ như thế này khách hàng. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]95 Lưu ý rằng chỉ có trường địa chỉ được bao quanh dấu ngoặc kép. Điều này là do theo mặc định, đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"05 được đặt thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"48. Nói cách khác, các trường sẽ chỉ được trích dẫn khi ký tự quote hoặc dấu phân cách xuất hiện trong dữ liệu Giả sử bạn muốn có dấu ngoặc kép xung quanh tất cả dữ liệu văn bản. Để đạt được điều này, hãy đặt đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"05 thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"50 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]93 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]97 Sản lượng dự kiến khách hàng. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]98 Bây giờ tất cả các tên và địa chỉ đều có dấu ngoặc kép xung quanh chúng Nếu bạn muốn có dấu ngoặc kép quanh tất cả các trường bất kể ký tự trích dẫn hay dấu phân cách có xuất hiện trong dữ liệu hay không, hãy đặt Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"05 thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"07 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]93 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"00 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"01 Bây giờ mọi thứ đều được trích dẫn kép Điều quan trọng cần lưu ý là khi trích dẫn được bật (i. e Tham số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"05 có giá trị khác với Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"09), mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 sử dụng Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"03 (mặc định là Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"04) để trích dẫn trường Danh sách sau đây thay đổi ký tự trích dẫn từ trích dẫn kép (______304) thành trích dẫn đơn ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"19) id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]93 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"03 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"04 Trong trường hợp này, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 sử dụng trích dẫn đơn ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"19) thay vì ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"04) để trích dẫn các trường chứa ký tự trích dẫn hoặc dấu phân cách Chúng tôi cũng có thể tắt trích dẫn tất cả cùng nhau bằng cách đặt Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"05 thành Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"09. Tuy nhiên, nếu bạn làm điều đó và ký tự phân cách xuất hiện trong dữ liệu thì bạn sẽ gặp lỗi như thế này id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]93 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"06 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"07 Vấn đề là trường địa chỉ chứa các dấu phẩy được nhúng ( id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]68) và vì chúng tôi đã tắt khả năng trích dẫn các trường, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 không biết cách thoát khỏi chúng đúng cách Đây là lúc đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"10 phát huy tác dụng. Phải mất một chuỗi ký tự sẽ được sử dụng để thoát khỏi dấu phân cách khi tắt trích dẫn (i. e Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"68) Danh sách sau đặt Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"10 thành dấu gạch chéo ngược ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"24) id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]93 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"09 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"10 Lưu ý rằng dấu phẩy ( id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]68) trong trường địa chỉ được thoát bằng ký tự dấu gạch chéo ngược ( Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"24) Bây giờ bạn đã hiểu rõ về các đối số định dạng khác nhau và ngữ cảnh mà chúng được sử dụng với hàm import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 và import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])2. Trong phần tiếp theo sẽ xem một số cách khác để đọc và ghi dữ liệu Đọc tệp CSV bằng DictReaderName,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"75 hoạt động gần như chính xác như import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 nhưng thay vì trả về một dòng dưới dạng danh sách, nó trả về một từ điển. Cú pháp của nó như sau cú pháp. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"77 Đối số Mô tả ____79(bắt buộc) Nó đề cập đến đối tượng tệp. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79(tùy chọn) Nó đề cập đến danh sách các khóa sẽ được sử dụng trong từ điển được trả về theo thứ tự. Nếu bị bỏ qua, tên trường được suy ra từ hàng đầu tiên của tệp CSV. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"80(tùy chọn) Nếu hàng có nhiều trường hơn chỉ định trong tham số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79, thì các trường còn lại được lưu trữ dưới dạng chuỗi được khóa bởi giá trị của đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"80. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"83(tùy chọn) Nó cung cấp giá trị cho các trường bị thiếu trong đầu vào. id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]60(tùy chọn) Phương ngữ đề cập đến các cách khác nhau để định dạng tài liệu CSV. Theo mặc định, mô-đun id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]9 sử dụng định dạng giống như Microsoft excel. Chúng tôi sẽ thảo luận chi tiết về phương ngữ sau trong bài viết này. id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]62Nó đề cập đến các đối số định dạng và hoạt động chính xác như import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])1 và import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])2 Hãy lấy một số ví dụ ví dụ 1 khách hàng. csv "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"10 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"12 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"13 Trong trường hợp này, tên trường được suy ra từ dòng đầu tiên (hoặc tiêu đề) của tệp CSV ví dụ 2. Sử dụng tham số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"14 Tệp CSV này không có tiêu đề. Vì vậy, chúng tôi phải cung cấp tên trường thông qua tham số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"15 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"16 ví dụ 3. Sử dụng tham số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"80 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"14 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"18 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"19 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"20 Lưu ý rằng địa chỉ và mã zip hiện được lưu trữ dưới dạng chuỗi được khóa bởi giá trị Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"92 Ví dụ 4. Sử dụng Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"83 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"14 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"18 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"23 Sản lượng dự kiến "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"24 Trong trường hợp này, chúng tôi đã chỉ định trường thêm hai trường. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"94 và Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"95. Các giá trị cho các trường bổ sung được cung cấp bởi đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"83 Viết tệp CSV bằng DictWriter()Đối tượng Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"97 ghi từ điển vào tệp CSV. Cú pháp của nó như sau cú pháp. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"98 Đối sốMô tả import csv with open('employees.csv', 'rt') as f: csv_reader = csv.reader(f) next(csv_reader) # skip the heading for line in csv_reader: print(line[0], line[1], line[2])9Nó đề cập đến đối tượng tệp Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79Nó đề cập đến tên trường và thứ tự chúng sẽ được ghi vào tệp. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"83Nó cung cấp giá trị còn thiếu cho các khóa không tồn tại trong từ điển. Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""02Nó kiểm soát hành động cần thực hiện nếu từ điển chứa khóa, không tìm thấy trong đối số Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79. Theo mặc định, Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""02 được đặt thành Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""05, có nghĩa là một ngoại lệ sẽ được đưa ra trong trường hợp như vậy. Nếu bạn muốn bỏ qua các giá trị bổ sung, hãy đặt Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""02 thành Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""07 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"97 cung cấp ba phương thức sau để ghi dữ liệu MethodDescription Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""09Viết tiêu đề (i. e Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"79) vào tệp CSV và trả về Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"12. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"40Ghi một hàng dữ liệu và trả về số ký tự đã viết. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"41 phải là một chuỗi các chuỗi và số. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"42Ghi nhiều hàng dữ liệu và trả về Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"12. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"44 phải là một dãy Hãy lấy một số ví dụ ví dụ 1 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"25 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"26 Sản lượng dự kiến khách hàng độc tài. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]95 ví dụ 2. Sử dụng Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"83 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"25 "ID","Name","CountryCode","District","Population" "1","Kabul","AFG","Kabol","1780000" "2","Qandahar","AFG","Qandahar","237500" "3","Herat","AFG","Herat","186800" "4","Mazar-e-Sharif","AFG","Balkh","127800" "5","Amsterdam","NLD","Noord-Holland","731200"29 Sản lượng dự kiến khách hàng độc tài. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]0 Trong trường hợp này, giá trị của trường Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"95 bị thiếu trong từ điển. Do đó, giá trị của Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"83 sẽ được sử dụng cho trường Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"95 ví dụ 3. Sử dụng Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""02 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]1 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]2 Ở đây, từ điển chứa một khóa phụ tên là Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""22 không có trong danh sách Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""23. Để ngăn ngoại lệ được nâng lên, chúng tôi đã đặt Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""02 thành Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""07 Sản lượng dự kiến khách hàng độc tài. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]3 Tạo phương ngữTrước đó trong bài đăng này, chúng tôi đã tìm hiểu các tham số định dạng khác nhau cho phép chúng tôi tùy chỉnh đối tượng trình đọc và trình ghi để phù hợp với sự khác biệt trong các quy ước CSV Nếu bạn thấy mình chuyển đi chuyển lại cùng một nhóm tham số định dạng. Cân nhắc việc tạo Phương ngữ của riêng bạn Một đối tượng phương ngữ hoặc (đơn giản là phương ngữ) là một cách để nhóm các tham số định dạng khác nhau. Khi bạn đã tạo đối tượng phương ngữ, chỉ cần chuyển đối tượng đó cho người đọc hoặc người viết, thay vì chuyển riêng từng đối số định dạng Để tạo một phương ngữ mới, chúng ta sử dụng hàm Id,User,Comment 1,Bob,"John said ""Hello World""" 2,Tom,""The Magician""26. Nó chấp nhận tên phương ngữ dưới dạng chuỗi và một hoặc nhiều tham số định dạng làm đối số từ khóa Bảng sau liệt kê tất cả các đối số định dạng cùng với các giá trị mặc định của chúng ArgumentDefaultDescription id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]67 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]68Nó đề cập đến ký tự được sử dụng để phân tách các giá trị (hoặc trường) trong tệp CSV. id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]69 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"00Nó kiểm soát cách diễn giải khoảng trắng sau dấu phân cách. Nếu Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"14, các khoảng trắng ban đầu sẽ bị xóa. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"01 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"02Nó đề cập đến chuỗi ký tự được sử dụng để kết thúc dòng. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"03 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"04Nó đề cập đến chuỗi ký tự đơn sẽ được sử dụng để báo giá trị nếu các ký tự đặc biệt (như dấu phân cách) xuất hiện bên trong trường. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"05 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"09kiểm soát khi trích dẫn nên được tạo bởi người viết hoặc được người đọc công nhận (xem ở trên để biết các tùy chọn khác). Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"10 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"12Nó đề cập đến chuỗi một ký tự được sử dụng để thoát khỏi dấu phân cách khi trích dẫn được đặt thành. Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"13 Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"14kiểm soát việc xử lý dấu ngoặc kép bên trong các trường. Khi Name,Age,Address Jerry,10,"2776 McDowell Street, Nashville, Tennessee" Tom,20,"3171 Jessie Street, Westerville, Ohio" Mike,30,"1818 Sherman Street, Hope, Kansas"14, hai trích dẫn liên tiếp được hiểu là một trong khi đọc và khi ghi, mỗi ký tự trích dẫn được nhúng trong dữ liệu được ghi dưới dạng hai trích dẫn Hãy tạo một phương ngữ đơn giản id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]4 id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]5 Sản lượng dự kiến giải oscar. csv id name email 1 John [email protected] 2 Bob [email protected] 3 Mary [email protected]6 Hướng dẫn khác (Nhà tài trợ) Trang web này được hỗ trợ rộng rãi bởi DataCamp. DataCamp cung cấp Hướng dẫn Python tương tác trực tuyến cho Khoa học dữ liệu. Tham gia cùng hơn một triệu người học khác và bắt đầu học Python cho khoa học dữ liệu ngay hôm nay Tệp được phân cách bằng đường ống là gì?Định dạng chuỗi được phân cách bằng dấu gạch ngang đại diện cho một chuỗi Unicode chứa nhiều chuỗi con, được phân cách bằng dấu gạch ngang (". ") ký tự . Mỗi chuỗi con không thể chứa ký tự ống.
Làm cách nào để ghi vào tệp CSV bằng Python?Lớp 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 ghi vào. tên trường - một đối tượng danh sách sẽ chứa các tiêu đề cột chỉ định thứ tự ghi dữ liệu trong tệp CSV.
Dấu phân cách trong tệp CSV là gì?Do đó, tệp CSV đại diện cho một bảng dữ liệu (có hàng và cột). Dấu phân cách mặc định cho tệp CSV là dấu phẩy, nhưng bất kỳ ký hiệu nào cũng có thể được sử dụng làm dấu phân cách CSV , chẳng hạn như tab ngang. |