Định dạng được gọi là CSV [Giá trị được phân tách bằng dấu phẩy] là định dạng nhập và xuất phổ biến nhất cho bảng tính và cơ sở dữ liệu. Định dạng CSV đã được sử dụng trong nhiều năm trước khi cố gắng mô tả định dạng theo cách chuẩn hóa trong RFC 4180. Việc thiếu một tiêu chuẩn được xác định rõ ràng có nghĩa là những khác biệt tinh tế thường tồn tại trong dữ liệu được tạo ra và sử dụng bởi các ứng dụng khác nhau. Những khác biệt này có thể gây khó chịu khi xử lý tệp CSV từ nhiều nguồn. Tuy nhiên, trong khi các dấu phân cách và ký tự trích dẫn khác nhau, định dạng tổng thể tương tự nhau đủ để có thể viết một mô-đun duy nhất có thể thao tác dữ liệu đó một cách hiệu quả, ẩn các chi tiết đọc và ghi dữ liệu khỏi lập trình viên.
Mô-đun
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3 triển khai các lớp để đọc và ghi dữ liệu dạng bảng ở định dạng CSV. Nó cho phép các lập trình viên nói, "ghi dữ liệu này ở định dạng ưa thích của Excel" hoặc "đọc dữ liệu từ tệp này được tạo bởi Excel" mà không cần biết các chi tiết chính xác của định dạng CSV được sử dụng bởi Excel. Các lập trình viên cũng có thể mô tả các định dạng CSV mà các ứng dụng khác hiểu được hoặc xác định các định dạng CSV có mục đích đặc biệt của riêng họ
Các đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 và
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 của mô-đun
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3 đọc và ghi các trình tự. Các lập trình viên cũng có thể đọc và ghi dữ liệu ở dạng từ điển bằng cách sử dụng các lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]8 và
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]9
Xem thêm
PEP 305 - API tệp CSVĐề xuất cải tiến Python đã đề xuất bổ sung này cho Python
Nội dung mô-đun¶
Mô-đun
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3 xác định các chức năng saucsv. trình đọc[csvfile , phương ngữ='excel', **fmtparams]¶
Trả về đối tượng trình đọc sẽ lặp qua các dòng trong tệp csv đã cho. csvfile có thể là bất kỳ đối tượng nào hỗ trợ giao thức iterator và trả về một chuỗi mỗi khi phương thức
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}1 của nó được gọi — file . Nếu csvfile là một đối tượng tệp, nó sẽ được mở bằng
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}2. 1 Có thể cung cấp một tham số phương ngữ tùy chọn được sử dụng để xác định một tập hợp các tham số dành riêng cho một phương ngữ CSV cụ thể. Nó có thể là một thể hiện của một lớp con của lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 hoặc một trong các chuỗi được trả về bởi hàm
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}4. Các đối số từ khóa fmtparams tùy chọn khác có thể được cung cấp để ghi đè các tham số định dạng riêng lẻ trong phương ngữ hiện tại. Để biết chi tiết đầy đủ về phương ngữ và tham số định dạng, hãy xem phần and list objects are both suitable. If csvfile is a file object, it should be opened with
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}2. 1 An optional dialect parameter can be given which is used to define a set of parameters specific to a particular CSV dialect. It may be an instance of a subclass of the
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 class or one of the strings returned by the
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}4 function. The other optional fmtparams keyword arguments can be given to override individual formatting parameters in the current dialect. For full details about the dialect and formatting parameters, see section Phương ngữ và tham số định dạng .
Mỗi hàng được đọc từ tệp csv được trả về dưới dạng danh sách các chuỗi. Không có chuyển đổi loại dữ liệu tự động nào được thực hiện trừ khi tùy chọn định dạng
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}5 được chỉ định [trong trường hợp đó, các trường không được trích dẫn sẽ được chuyển đổi thành số thực]
Một ví dụ sử dụng ngắn
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]2csv. người viết[csvfile , phương ngữ='excel', **fmtparams]¶
Trả về một đối tượng nhà văn chịu trách nhiệm chuyển đổi dữ liệu của người dùng thành các chuỗi được phân tách trên đối tượng giống như tệp đã cho. csvfile có thể là bất kỳ đối tượng nào có phương thức
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}6. Nếu csvfile là một đối tượng tệp, nó sẽ được mở bằng
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}2 1. Có thể cung cấp một tham số phương ngữ tùy chọn được sử dụng để xác định một tập hợp các tham số dành riêng cho một phương ngữ CSV cụ thể. Nó có thể là một thể hiện của một lớp con của lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 hoặc một trong các chuỗi được trả về bởi hàm
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}4. Các đối số từ khóa fmtparams tùy chọn khác có thể được cung cấp để ghi đè các tham số định dạng riêng lẻ trong phương ngữ hiện tại. Để biết chi tiết đầy đủ về phương ngữ và tham số định dạng, hãy xem phần Phương ngữ và tham số định dạng . Để giao tiếp với các mô-đun triển khai API DB dễ dàng nhất có thể, giá trị
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]70 được viết dưới dạng chuỗi trống. Mặc dù đây không phải là phép chuyển đổi có thể đảo ngược, nhưng nó giúp kết xuất giá trị dữ liệu SQL NULL sang tệp CSV dễ dàng hơn mà không cần xử lý trước dữ liệu được trả về từ lệnh gọi
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]71. Tất cả dữ liệu không phải chuỗi khác được xâu chuỗi bằng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]72 trước khi được ghi.
Một ví dụ sử dụng ngắn
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]csv. register_dialect[tên[ , dialect[, **fmtparams]]]¶
Liên kết phương ngữ với tên. tên phải là một chuỗi. Phương ngữ có thể được chỉ định bằng cách chuyển một lớp con của
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 hoặc bằng các đối số từ khóa fmtparams hoặc cả hai, với các đối số từ khóa ghi đè các tham số của phương ngữ. Để biết đầy đủ chi tiết về phương ngữ và tham số định dạng, hãy xem phần Phương ngữ và tham số định dạng . csv. unregister_dialect[tên] ¶
Xóa phương ngữ được liên kết với tên khỏi sổ đăng ký phương ngữ. Một
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]74 được nâng lên nếu tên không phải là tên phương ngữ đã đăng kýcsv. get_dialect[tên] ¶
Trả lại phương ngữ được liên kết với tên. Một
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]74 được nâng lên nếu tên không phải là tên phương ngữ đã đăng ký. Hàm này trả về một
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 không thay đổicsv. list_dialects[] ¶
Trả lại tên của tất cả các phương ngữ đã đăng ký
csv. field_size_limit[[new_limit]]¶Trả về kích thước trường tối đa hiện tại được trình phân tích cú pháp cho phép. Nếu new_limit được đưa ra, điều này sẽ trở thành giới hạn mới
Mô-đun
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3 định nghĩa các lớp saulớp csv. DictReader[f , tên trường=None, restkey=None, restval=None, dialect='excel', *args, **kwds]¶
Tạo một đối tượng hoạt động như một trình đọc thông thường nhưng ánh xạ thông tin trong mỗi hàng tới một
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]78 có các khóa được cung cấp bởi tham số tên trường tùy chọn
Tham số tên trường là một trình tự . Nếu tên trường bị bỏ qua, các giá trị trong hàng đầu tiên của tệp f sẽ được sử dụng làm tên trường. Bất kể tên trường được xác định như thế nào, từ điển sẽ giữ nguyên thứ tự ban đầu của chúng.
Nếu một hàng có nhiều trường hơn tên trường, thì dữ liệu còn lại sẽ được đưa vào danh sách và được lưu trữ với tên trường được chỉ định bởi phím đặt lại [mặc định là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]70]. Nếu một hàng không trống có ít trường hơn tên trường, các giá trị còn thiếu sẽ được điền vào bằng giá trị của restval [giá trị này mặc định là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]70]
Tất cả các đối số tùy chọn hoặc từ khóa khác được chuyển đến phiên bản
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 bên dưới
Đã thay đổi trong phiên bản 3. 6. Các hàng được trả về hiện thuộc loại
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]02.
Đã thay đổi trong phiên bản 3. 8. Các hàng được trả về hiện thuộc loại
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]78.
Một ví dụ sử dụng ngắn
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}lớp csv. DictWriter[f , tên trường, restval='', extrasaction='raise', dialect='excel', *args, **kwds]¶
Tạo một đối tượng hoạt động giống như một trình ghi thông thường nhưng ánh xạ từ điển lên các hàng đầu ra. Tham số tên trường là một
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]04 khóa xác định thứ tự các giá trị trong từ điển được truyền cho phương thức
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]05 được ghi vào tệp f. Tham số restval tùy chọn chỉ định giá trị sẽ được ghi nếu từ điển thiếu khóa trong tên trường. Nếu từ điển được chuyển đến phương thức
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]05 chứa khóa không tìm thấy trong tên trường, tham số bổ sung tùy chọn cho biết hành động cần thực hiện. Nếu nó được đặt thành
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]07, giá trị mặc định, một
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]08 sẽ được nâng lên. Nếu nó được đặt thành
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]09, các giá trị bổ sung trong từ điển sẽ bị bỏ qua. Bất kỳ đối số tùy chọn hoặc từ khóa nào khác được chuyển đến đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 bên dưới
Lưu ý rằng không giống như lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]8, tham số tên trường của lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]9 không phải là tùy chọn
Một ví dụ sử dụng ngắn
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7lớp csv. Phương ngữ ¶
Lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 là lớp chứa có thuộc tính chứa thông tin về cách xử lý dấu ngoặc kép, khoảng trắng, dấu phân cách, v.v. Do thiếu thông số kỹ thuật CSV nghiêm ngặt, các ứng dụng khác nhau tạo ra dữ liệu CSV khác nhau một cách tinh vi. Phiên bản
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 xác định cách hoạt động của phiên bản
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 và
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7
Tất cả các tên
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 có sẵn được trả về bởi
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}4 và chúng có thể được đăng ký với các lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 và
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 cụ thể thông qua các hàm khởi tạo [
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]11] của chúng như thế này
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]0lớp csv. excel ¶
Lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]12 xác định các thuộc tính thông thường của tệp CSV do Excel tạo. Nó được đăng ký với tên phương ngữ
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]13lớp csv. excel_tab ¶
Lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]14 xác định các thuộc tính thông thường của tệp được phân định bằng TAB do Excel tạo. Nó được đăng ký với tên phương ngữ
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]15lớp csv. unix_dialect ¶
Lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]16 định nghĩa các thuộc tính thông thường của tệp CSV được tạo trên hệ thống UNIX, tôi. e. sử dụng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]17 làm dấu kết thúc dòng và trích dẫn tất cả các trường. Nó được đăng ký với tên phương ngữ
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]18
Mới trong phiên bản 3. 2
lớp csv. Người đánh hơi ¶Lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]19 được sử dụng để suy ra định dạng của tệp CSV
Lớp
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]19 cung cấp hai phương thứcsniff[mẫu , dấu phân cách=None]¶
Phân tích mẫu đã cho và trả về một phân lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 phản ánh các tham số được tìm thấy. Nếu tham số dấu phân cách tùy chọn được đưa ra, nó được hiểu là một chuỗi chứa các ký tự dấu phân cách hợp lệ có thể cóhas_header[mẫu] ¶
Phân tích văn bản mẫu [được cho là ở định dạng CSV] và trả về
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]32 nếu hàng đầu tiên có vẻ là một loạt tiêu đề cột. Kiểm tra từng cột, một trong hai tiêu chí chính sẽ được xem xét để ước tính xem mẫu có chứa tiêu đề hay không
hàng thứ hai đến hàng thứ n chứa các giá trị số
hàng thứ hai đến hàng thứ n chứa các chuỗi trong đó độ dài của ít nhất một giá trị khác với độ dài của tiêu đề giả định của cột đó
Hai mươi hàng sau hàng đầu tiên được lấy mẫu;
Ghi chú
Phương pháp này là một heuristic thô và có thể tạo ra cả dương tính giả và âm tính
Một ví dụ cho việc sử dụng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]19
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6
Mô-đun
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3 xác định các hằng số saucsv. QUOTE_ALL ¶
Hướng dẫn đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 trích dẫn tất cả các trườngcsv. QUOTE_MINIMAL ¶
Hướng dẫn các đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 chỉ trích dẫn những trường có chứa các ký tự đặc biệt như dấu phân cách, ký tự trích dẫn hoặc bất kỳ ký tự nào trong lineterminatorcsv. QUOTE_NONNUMERIC ¶
Hướng dẫn các đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 trích dẫn tất cả các trường không phải là số
Hướng dẫn người đọc chuyển đổi tất cả các trường không được trích dẫn để nhập float
csv. QUOTE_NONE ¶Hướng dẫn các đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7 không bao giờ trích dẫn các trường. Khi dấu phân cách hiện tại xuất hiện trong dữ liệu đầu ra, nó được bắt đầu bằng ký tự thoát hiện tại. Nếu không đặt ký tự thoát, người viết sẽ tăng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]74 nếu gặp phải bất kỳ ký tự nào yêu cầu thoát
Hướng dẫn
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 không thực hiện xử lý đặc biệt các ký tự trích dẫn
Mô-đun
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3 xác định ngoại lệ saungoại lệ csv. Lỗi ¶
Tăng lên bởi bất kỳ chức năng nào khi phát hiện lỗi
Phương ngữ và tham số định dạng¶
Để dễ dàng chỉ định định dạng của bản ghi đầu vào và đầu ra, các tham số định dạng cụ thể được nhóm lại với nhau thành các phương ngữ. Một phương ngữ là một lớp con của lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 có một tập hợp các phương thức cụ thể và một phương thức
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}64 duy nhất. Khi tạo các đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 hoặc
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7, lập trình viên có thể chỉ định một chuỗi hoặc một lớp con của lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 làm tham số phương ngữ. Ngoài, hoặc thay cho tham số phương ngữ, lập trình viên cũng có thể chỉ định các tham số định dạng riêng lẻ, có cùng tên với các thuộc tính được xác định bên dưới cho lớp
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3
Các phương ngữ hỗ trợ các thuộc tính sau
Phương ngữ. dấu phân cách ¶Chuỗi một ký tự được sử dụng để phân tách các trường. Nó mặc định là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}69Phương ngữ. trích dẫn kép ¶
Kiểm soát cách các phiên bản của quotechar xuất hiện bên trong một trường sẽ được trích dẫn. Khi
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]32, ký tự được nhân đôi. Khi
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}31, ký tự thoát được sử dụng làm tiền tố cho ký tự trích dẫn. Nó mặc định là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]32
Ở đầu ra, nếu doublequote là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}31 và không có ký tự thoát nào được đặt, thì
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]74 được nâng lên nếu tìm thấy ký tự trích dẫn trong một trườngPhương ngữ. ký tự thoát ¶
Chuỗi một ký tự được người viết sử dụng để thoát khỏi dấu phân cách nếu trích dẫn được đặt thành
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}35 và ký tự trích dẫn nếu trích dẫn kép là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}31. Khi đọc, ký tự thoát sẽ xóa mọi ý nghĩa đặc biệt khỏi ký tự sau. Nó mặc định là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]70, vô hiệu hóa việc thoát
Đã thay đổi trong phiên bản 3. 11. Không được phép sử dụng ký tự thoát rỗng.
Phương ngữ. lineterminator ¶Chuỗi được sử dụng để kết thúc các dòng được tạo bởi
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]7. Nó mặc định là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}39
Ghi chú
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]6 được mã hóa cứng để nhận ra
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]01 hoặc
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]17 là cuối dòng và bỏ qua bộ kết thúc dòng. Hành vi này có thể thay đổi trong tương laiPhương ngữ. báo giá ¶
Chuỗi một ký tự được sử dụng để trích dẫn các trường chứa ký tự đặc biệt, chẳng hạn như dấu phân cách hoặc ký tự trích dẫn hoặc chứa ký tự xuống dòng. Nó mặc định là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]03
Đã thay đổi trong phiên bản 3. 11. Không được phép sử dụng ký tự trích dẫn trống.
Phương ngữ. trích dẫn ¶Kiểm soát thời điểm người viết tạo trích dẫn và người đọc nhận ra. Nó có thể nhận bất kỳ hằng số
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]04 nào [xem phần Nội dung mô-đun ] và mặc định là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]05. Phương ngữ. bỏ qua dấu cách ¶
Khi
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]32, khoảng trắng ngay sau dấu phân cách sẽ bị bỏ qua. Mặc định là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}31Phương ngữ. nghiêm ngặt ¶
Khi
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]32, tăng ngoại lệ
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]74 đối với đầu vào CSV không hợp lệ. Mặc định là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}31
Đối tượng người đọc¶
Đối tượng reader [_______08 thể hiện và đối tượng được trả về bởi hàm
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]12] có các phương thức công khai saucsvreader. __next__[] ¶
Trả về hàng tiếp theo của đối tượng có thể lặp lại của trình đọc dưới dạng danh sách [nếu đối tượng được trả về từ
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]12] hoặc lệnh [nếu đó là phiên bản
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]8], được phân tích cú pháp theo
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 hiện tại. Thông thường bạn nên gọi đây là
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]16
Đối tượng người đọc có các thuộc tính công khai sau
csvreader. phương ngữ ¶Mô tả chỉ đọc của phương ngữ được trình phân tích cú pháp sử dụng
csvreader. line_num ¶Số dòng được đọc từ trình lặp nguồn. Điều này không giống với số lượng bản ghi được trả về, vì bản ghi có thể trải rộng trên nhiều dòng
Các đối tượng DictReader có thuộc tính public sau
csvreader. tên trường ¶Nếu không được truyền dưới dạng tham số khi tạo đối tượng, thì thuộc tính này được khởi tạo khi truy cập lần đầu hoặc khi bản ghi đầu tiên được đọc từ tệp
Đối tượng nhà văn¶
Đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]17 [_______09 thể hiện và đối tượng được trả về bởi hàm
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]19] có các phương thức công khai sau. Một hàng phải là một chuỗi hoặc số có thể lặp lại đối với đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]17 và tên trường ánh xạ từ điển thành chuỗi hoặc số [bằng cách chuyển chúng qua
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]72 trước] đối với đối tượng
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]9. Lưu ý rằng các số phức được viết ra bao quanh bởi dấu ngoặc đơn. Điều này có thể gây ra một số sự cố đối với các chương trình khác đọc tệp CSV [giả sử chúng hoàn toàn hỗ trợ các số phức]csvwriter. nhà văn[hàng] ¶
Viết tham số hàng vào đối tượng tệp của người viết, được định dạng theo
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3 hiện tại. Trả lại giá trị trả về của lệnh gọi phương thức ghi của đối tượng tệp bên dưới
Đã thay đổi trong phiên bản 3. 5. Đã thêm hỗ trợ cho các lần lặp tùy ý.
csvwriter. hàng viết[hàng] ¶Ghi tất cả các thành phần trong hàng [một đối tượng hàng có thể lặp lại như được mô tả ở trên] vào đối tượng tệp của người viết, được định dạng theo phương ngữ hiện tại
Các đối tượng nhà văn có thuộc tính công khai sau
csvwriter. phương ngữ ¶Một mô tả chỉ đọc về phương ngữ được sử dụng bởi nhà văn
Các đối tượng DictWriter có phương thức công khai sau
DictWriter. tiêu đề ghi[] ¶Viết một hàng có tên trường [như được chỉ định trong hàm tạo] vào đối tượng tệp của người viết, được định dạng theo phương ngữ hiện tại. Trả về giá trị trả về của cuộc gọi
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]24 được sử dụng nội bộ
Mới trong phiên bản 3. 2
Đã thay đổi trong phiên bản 3. 8. ______025 bây giờ cũng trả về giá trị được trả về bởi phương thức
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]24 mà nó sử dụng nội bộ.
Ví dụ¶
Ví dụ đơn giản nhất về đọc tệp CSV
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]1
Đọc một tệp có định dạng thay thế
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]3
Ví dụ viết đơn giản nhất có thể tương ứng là
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}6
Vì
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]27 được sử dụng để mở tệp CSV để đọc, theo mặc định, tệp sẽ được giải mã thành unicode bằng cách sử dụng mã hóa mặc định của hệ thống [xem
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]28]. Để giải mã tệp bằng mã hóa khác, hãy sử dụng đối số
import csv with open['eggs.csv', 'w', newline=''] as csvfile: spamwriter = csv.writer[csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL] spamwriter.writerow[['Spam'] * 5 + ['Baked Beans']] spamwriter.writerow[['Spam', 'Lovely Spam', 'Wonderful Spam']]29 của open
>>> import csv >>> with open['names.csv', newline=''] as csvfile: .. reader = csv.DictReader[csvfile] .. for row in reader: .. print[row['first_name'], row['last_name']] ... Eric Idle John Cleese >>> print[row] {'first_name': 'John', 'last_name': 'Cleese'}3
Điều tương tự cũng áp dụng cho việc viết bằng thứ gì đó không phải là mã hóa mặc định của hệ thống. chỉ định đối số mã hóa khi mở tệp đầu ra