Xin chào, 'dấu phân cách' là một trình giữ chỗ ở đây. Vì vậy, ý nghĩa của 'dấu phân cách' là dấu phân cách. Bạn không thực sự gõ từ “dấu phân cách”, bạn sử dụng bất kỳ dấu phân cách [dấu phân cách] nào mà bạn muốn chức năng phân tách cắt bỏ
Bạn có thể yêu cầu nó tách chuỗi bằng dấu phẩy, dấu cách, v.v.
e. g.
random_string = " một, hai và ba, bốn"
split_random_string = chuỗi_ngẫu nhiên. tách[","]
sẽ in. [‘one’, ‘two and three’, ‘four’]
vì nó phân tách chuỗi tại 'dấu phân cách' mà tôi đã chỉ định - dấu phẩy
Đôi khi khi làm việc với một khối văn bản lớn, chúng ta có thể gặp sự cố trong đó chúng ta cố gắng tìm ký tự nào đang đóng vai trò là dấu phân cách. Đây có thể là một tiện ích thú vị và hữu ích khi làm việc với một lượng dữ liệu khổng lồ và đánh giá dấu phân cách. Một cách để giải quyết vấn đề này được thảo luận trong bài viết này bằng thư viện Python của detect_delimiter
Cài đặt
Để cài đặt mô-đun này, hãy nhập lệnh bên dưới trong thiết bị đầu cuối
cài đặt pip detect_delimiter
Bước đầu tiên là kiểm tra sự hiện diện của tất cả các ký tự trong danh sách trắng trong văn bản đầu vào, nếu tìm thấy, thì các ký tự đó được tính cho hầu hết các tần số và tối đa một ký tự được trả về, bỏ qua tất cả khỏi danh sách danh sách đen nếu được cung cấp. Nếu không có dấu phân cách nào từ danh sách trắng, thì các ký tự tránh các ký tự trong danh sách đen được tính cho tần suất tối đa, nếu tìm thấy, ký tự đó được trả về làm dấu phân cách. Nếu vẫn không tìm thấy dấu phân cách, giá trị mặc định được trả về dưới dạng dấu phân cách nếu được cung cấp, nếu không thì trả về Không có.
Cú pháp. phát hiện [văn bản. str, văn bản. str, default=None, whitelist=[‘,’, ‘;’, ‘. ’, ‘. ’, ‘\t’], blacklist=None]
văn bản. Chuỗi đầu vào để kiểm tra dấu phân cách.
mặc định. Giá trị mặc định để xuất ra trong trường hợp không tìm thấy dấu phân cách hợp lệ.
danh sách trắng. Bộ ký tự đầu tiên được kiểm tra để tìm dấu phân cách, nếu tìm thấy chúng, chúng được coi là dấu phân cách. Hữu ích trong trường hợp người ta biết trong số đó có thể có dấu phân cách. Mặc định là [‘,’, ‘;’, ‘. ’, ‘. ’, ‘\t’].
danh sách đen. Theo mặc định, tất cả các chữ số, bảng chữ cái và dấu chấm hoàn toàn không được coi là danh sách đen. Trong trường hợp cần nhiều giá trị hơn để tránh bị gắn thẻ là dấu phân cách, những giá trị này sẽ tránh được khi kiểm tra.
ví dụ 1. Làm việc với detect[] và default
Trong phần này, một số ví dụ về việc phát hiện các dấu phân cách được trình bày cùng với việc sử dụng mặc định.
Python3
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
6 import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
7import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
8 import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
9
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
0import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
2import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
3import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
4import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
70import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
71import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
72
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
73import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
74import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
2import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
77import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
4import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
70import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
81import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
72
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
83import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
74import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
85import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
2import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
88import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
4import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
70import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
81import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
93import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
94import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
95import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
72đầu ra.
Làm việc với detect[] và default
ví dụ 2. Sử dụng các tham số danh sách đen và danh sách trắng
Việc cung cấp tham số danh sách trắng sẽ ưu tiên bất kỳ dấu phân cách cụ thể nào ngay cả khi tần suất của nó nhỏ hơn dấu phân cách không có trong danh sách trắng. Tham số danh sách đen có thể giúp bỏ qua bất kỳ dấu phân cách nào
Tệp CSV [Giá trị được phân tách bằng dấu phẩy] là tệp sử dụng một định dạng nhất định để lưu trữ dữ liệu. Định dạng tệp này sắp xếp thông tin, chứa một bản ghi trên mỗi dòng, với mỗi trường [cột] được phân tách bằng dấu phân cách. Dấu phân cách được sử dụng phổ biến nhất thường là dấu phẩy
Định dạng này phổ biến đến mức nó thực sự đã được chuẩn hóa trong RFC 4180. Tuy nhiên, tiêu chuẩn này không phải lúc nào cũng được tuân theo và thiếu cách sử dụng tiêu chuẩn chung. Định dạng chính xác được sử dụng đôi khi có thể phụ thuộc vào ứng dụng mà nó đang được sử dụng cho
Các tệp CSV thường được sử dụng vì chúng dễ đọc và dễ quản lý, chúng có kích thước nhỏ và xử lý/chuyển nhanh chóng. Vì những lợi ích này, chúng thường được sử dụng trong các ứng dụng phần mềm, ở mọi nơi từ cửa hàng thương mại điện tử trực tuyến đến ứng dụng di động đến công cụ máy tính để bàn. Ví dụ: Magento, một nền tảng thương mại điện tử, được biết đến với sự hỗ trợ của CSV
Ngoài ra, nhiều ứng dụng, chẳng hạn như Microsoft Excel, Notepad và Google Docs, có thể được sử dụng để nhập hoặc xuất tệp CSV
Mô-đun Python csv
Mô-đun csv triển khai các lớp để hoạt động với các tệp CSV. Nó tập trung vào định dạng được ưa thích bởi Microsoft Excel. Tuy nhiên, chức năng của nó đủ rộng để hoạt động với các tệp CSV sử dụng các dấu phân cách và ký tự trích dẫn khác nhau
Mô-đun này cung cấp các chức năng
1/2/3
Good morning/Good afternoon/Good evening
7 và 1/2/3
Good morning/Good afternoon/Good evening
8, hoạt động theo cách tuần tự. Nó cũng có các lớp 1/2/3
Good morning/Good afternoon/Good evening
9 và import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
0 để quản lý dữ liệu CSV của bạn dưới dạng đối tượng từ điển Pythoncsv. người đọc
Phương pháp
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
1 có thể được sử dụng để trích xuất dữ liệu từ tệp chứa dữ liệu có định dạng CSVNó nhận các tham số sau
2. Đối tượng hỗ trợ giao thức lặp, trong trường hợp này thường là đối tượng tệp cho tệp CSVimport csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
3 [tùy chọn]. Tên của phương ngữ sẽ sử dụng [sẽ được giải thích trong các phần sau]import csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
4 [tùy chọn]. Các tham số định dạng sẽ ghi đè lên các tham số được chỉ định trong phương ngữimport csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
Phương thức này trả về một đối tượng trình đọc, đối tượng này có thể được lặp lại để truy xuất các dòng trong CSV của bạn. Dữ liệu được đọc dưới dạng danh sách các chuỗi. Nếu chúng tôi chỉ định định dạng QUOTE_NONNUMERIC, các giá trị không được trích dẫn sẽ được chuyển đổi thành giá trị float
Một ví dụ về cách sử dụng phương pháp này được đưa ra trong phần của bài viết này
csv. nhà văn
Phương pháp
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
5, tương tự như phương pháp đọc mà chúng tôi đã mô tả ở trên, là phương pháp cho phép chúng tôi ghi dữ liệu vào một tệp ở định dạng CSVPhương thức này nhận các tham số sau
2. Bất kỳ đối tượng nào có phương thứcimport csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
7, trong trường hợp này thường là đối tượng tệpimport csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
3 [tùy chọn]. Tên phương ngữ sử dụngimport csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
4 [tùy chọn]. Các tham số định dạng sẽ ghi đè lên các tham số được chỉ định trong phương ngữimport csv with open['csvexample.csv', newline=''] as myFile: reader = csv.reader[myFile] for row in reader: print[row]
Một lưu ý thận trọng với phương pháp này. Nếu tham số
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
2 được chỉ định là một đối tượng tệp, thì nó cần được mở bằng 1/2/3
Good morning/Good afternoon/Good evening
41. Nếu điều này không được chỉ định, các dòng mới bên trong các trường được trích dẫn sẽ không được hiểu chính xác và tùy thuộc vào nền tảng làm việc, các ký tự bổ sung, chẳng hạn như '\r' có thể được thêm vàocsv. DictReader và csv. DictWriter
Mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 cũng cung cấp cho chúng ta các lớp 1/2/3
Good morning/Good afternoon/Good evening
9 và import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
0, cho phép chúng ta đọc và ghi vào tệp bằng các đối tượng từ điểnLớp
1/2/3
Good morning/Good afternoon/Good evening
45 hoạt động theo cách tương tự như lớp 1/2/3
Good morning/Good afternoon/Good evening
46, nhưng trong Python 2, nó ánh xạ dữ liệu tới một từ điển và trong Python 3, nó ánh xạ dữ liệu tới một 1/2/3
Good morning/Good afternoon/Good evening
47. Các khóa được cung cấp bởi tham số tên trườngVà cũng giống như
1/2/3
Good morning/Good afternoon/Good evening
9, lớp 1/2/3
Good morning/Good afternoon/Good evening
49 hoạt động rất giống với phương thức 1/2/3
Good morning/Good afternoon/Good evening
30, mặc dù nó ánh xạ từ điển tới các hàng đầu ra. Tuy nhiên, hãy lưu ý rằng vì từ điển của Python không được sắp xếp theo thứ tự nên chúng tôi không thể dự đoán thứ tự hàng trong tệp đầu raCả hai lớp này bao gồm một tham số tùy chọn để sử dụng phương ngữ
tiếng địa phương
A , trong ngữ cảnh đọc và ghi CSV, là cấu trúc cho phép bạn tạo, lưu trữ và sử dụng lại các tham số định dạng khác nhau cho dữ liệu của mình
Python cung cấp hai cách khác nhau để chỉ định tham số định dạng. Đầu tiên là bằng cách khai báo một lớp con của lớp này, lớp này chứa các thuộc tính cụ thể. Thứ hai là bằng cách chỉ định trực tiếp các tham số định dạng, sử dụng cùng tên như được định nghĩa trong lớp
1/2/3
Good morning/Good afternoon/Good evening
311/2/3
Good morning/Good afternoon/Good evening
31 hỗ trợ một số thuộc tính. Được sử dụng thường xuyên nhất là
33. Được sử dụng làm ký tự phân cách giữa các trường. Giá trị mặc định là dấu phẩy [,]1/2/3 Good morning/Good afternoon/Good evening
34. Được sử dụng để trích dẫn các trường có chứa các ký tự đặc biệt. Mặc định là dấu ngoặc kép ["]1/2/3 Good morning/Good afternoon/Good evening
35. Dùng để tạo dòng mới. Mặc định là '\r\n'1/2/3 Good morning/Good afternoon/Good evening
Sử dụng lớp này để cho mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 biết cách tương tác với dữ liệu CSV không chuẩn của bạnphiên bản
Một điều quan trọng cần lưu ý nếu bạn đang sử dụng Python 2. 7. không dễ hỗ trợ đầu vào Unicode trong phiên bản Python này, vì vậy bạn có thể cần đảm bảo tất cả đầu vào của mình ở dạng ký tự UTF-8 hoặc ASCII có thể in được
Ví dụ về tệp CSV
Chúng tôi có thể tạo tệp CSV dễ dàng bằng trình soạn thảo văn bản hoặc thậm chí là Excel. Trong ví dụ bên dưới, tệp Excel có sự kết hợp của các số [1, 2 và 3] và các từ [Chào buổi sáng, Chào buổi chiều, Chào buổi tối], mỗi số trong một ô khác nhau
Để lưu tệp này dưới dạng CSV, hãy nhấp vào Tệp->Lưu dưới dạng, sau đó trong cửa sổ Lưu dưới dạng, chọn "Giá trị được phân tách bằng dấu phẩy [. csv]" trong menu thả xuống Định dạng. Lưu nó dưới dạng ví dụ csv. csv để sử dụng sau này
Cấu trúc của tệp CSV có thể được xem bằng trình soạn thảo văn bản, chẳng hạn như Notepad hoặc Sublime Text. Tại đây, chúng ta có thể lấy các giá trị giống như trong file Excel nhưng cách nhau bởi dấu phẩy
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
0Chúng tôi sẽ sử dụng tệp này trong các ví dụ sau
Chúng tôi cũng có thể thay đổi dấu phân cách thành một thứ khác ngoài dấu phẩy, chẳng hạn như dấu gạch chéo lên phía trước ['/']. Thực hiện thay đổi này trong tệp ở trên, thay thế tất cả dấu phẩy bằng dấu gạch chéo lên và lưu dưới dạng csvexample2. csv để sử dụng sau này. Nó sẽ trông như sau
1/2/3
Good morning/Good afternoon/Good evening
Đây cũng là dữ liệu CSV hợp lệ, miễn là chúng tôi sử dụng đúng phương ngữ và định dạng để đọc/ghi dữ liệu, trong trường hợp này sẽ yêu cầu dấu phân cách '/'
Đọc tệp CSV
Tệp CSV đơn giản
Trong ví dụ này, chúng tôi sẽ chỉ ra cách bạn có thể đọc ví dụ csv. csv mà chúng tôi đã tạo và giải thích trong phần trước. Mã này như sau
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
Trong mã này, chúng tôi mở tệp CSV của mình dưới dạng
1/2/3
Good morning/Good afternoon/Good evening
37 và sau đó sử dụng phương pháp 1/2/3
Good morning/Good afternoon/Good evening
46 để trích xuất dữ liệu vào đối tượng 1/2/3
Good morning/Good afternoon/Good evening
7, sau đó chúng tôi có thể lặp lại để truy xuất từng dòng dữ liệu của mình. Đối với ví dụ này, để hiển thị rằng dữ liệu đã thực sự được đọc, chúng tôi chỉ cần in nó ra bàn điều khiểnNếu chúng tôi lưu mã trong một tệp có tên reader. py và chúng tôi chạy nó, kết quả sẽ hiển thị như sau
1/2/3
Good morning/Good afternoon/Good evening
4Hãy xem hướng dẫn thực hành, thực tế của chúng tôi để học Git, với các phương pháp hay nhất, tiêu chuẩn được ngành chấp nhận và bao gồm bảng gian lận. Dừng các lệnh Git trên Google và thực sự tìm hiểu nó
Như chúng ta có thể thấy khi chạy mã này, chúng ta có được nội dung của csvexample. csv, được in ra bảng điều khiển, ngoại trừ việc bây giờ nó ở dạng có cấu trúc mà chúng ta có thể dễ dàng làm việc với mã của mình hơn
Thay đổi dấu phân cách
Mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 cho phép chúng tôi đọc các tệp CSV, ngay cả khi một số đặc điểm của định dạng tệp khác với định dạng tiêu chuẩn. Ví dụ: chúng ta có thể đọc một tệp có dấu phân cách khác, như tab, dấu chấm hoặc thậm chí là khoảng trắng [thực sự là bất kỳ ký tự nào]. Trong ví dụ khác của chúng tôi, csvexample2. csv, chúng tôi đã thay thế dấu phẩy bằng dấu gạch chéo lên phía trước để chứng minh điều nàyĐể thực hiện tác vụ tương tự như trên với định dạng mới này, chúng ta phải sửa đổi mã để cho biết dấu phân cách mới đang được sử dụng. Trong ví dụ này, chúng tôi đã lưu mã trong một tệp có tên là reader2. py. Chương trình sửa đổi như sau
1/2/3
Good morning/Good afternoon/Good evening
3Như chúng ta có thể thấy từ đoạn mã trên, chúng ta đã sửa đổi dòng mã thứ ba bằng cách thêm tham số
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
91 và gán giá trị '/' cho nó. Điều này cho biết phương pháp coi tất cả các ký tự '/' là điểm phân tách giữa dữ liệu cộtChúng tôi cũng đã thêm tham số trích dẫn và gán cho nó giá trị là
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
92, điều đó có nghĩa là phương thức không được sử dụng bất kỳ trích dẫn đặc biệt nào trong khi phân tích cú pháp. Như mong đợi, kết quả tương tự như ví dụ trướcimport csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
9Như bạn có thể thấy, nhờ những thay đổi nhỏ trong mã, chúng tôi vẫn nhận được kết quả như mong đợi
Tạo một phương ngữ
Mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 cho phép chúng tôi tạo một phương ngữ với các đặc điểm cụ thể của tệp CSV của chúng tôi. Do đó, kết quả tương tự ở trên cũng có thể đạt được với đoạn mã sauimport csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
3Ở đây chúng tôi tạo và đăng ký phương ngữ được đặt tên của riêng mình, trong trường hợp này sử dụng các tham số định dạng giống như trước đây [dấu gạch chéo về phía trước và không trích dẫn]. Sau đó, chúng tôi chỉ định cho
1/2/3
Good morning/Good afternoon/Good evening
46 rằng chúng tôi muốn sử dụng phương ngữ mà chúng tôi đã đăng ký bằng cách chuyển tên của nó làm tham số import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
3Nếu chúng tôi lưu mã này trong một tệp có tên là reader3. py và chạy nó, kết quả sẽ như sau
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
6Một lần nữa, đầu ra này hoàn toàn giống như trên, có nghĩa là chúng tôi đã phân tích cú pháp chính xác dữ liệu CSV không chuẩn
Ghi vào tệp CSV
Cũng giống như đọc tệp CSV, mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 cũng cung cấp nhiều chức năng để ghi dữ liệu vào tệp CSV một cách thích hợp. Đối tượng 1/2/3
Good morning/Good afternoon/Good evening
8 trình bày hai chức năng, cụ thể là import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
98 và import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
99. Sự khác biệt giữa chúng, như bạn có thể biết từ tên, là hàm đầu tiên sẽ chỉ viết một hàng và hàm import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
99 viết nhiều hàng cùng một lúcMã trong ví dụ bên dưới tạo danh sách dữ liệu, với mỗi thành phần trong danh sách bên ngoài đại diện cho một hàng trong tệp CSV. Sau đó, mã của chúng tôi mở tệp CSV có tên csvexample3. csv, tạo một đối tượng
1/2/3
Good morning/Good afternoon/Good evening
8 và ghi dữ liệu của chúng tôi vào tệp bằng phương thức import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
99import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
4Tệp kết quả, csvexample3. csv, nên có văn bản sau
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
5Đối tượng
1/2/3
Good morning/Good afternoon/Good evening
8 cũng phục vụ cho các định dạng CSV khác. Ví dụ sau tạo và sử dụng phương ngữ có '/' làm dấu phân cách1/2/3
Good morning/Good afternoon/Good evening
0Tương tự với ví dụ "đọc" của chúng tôi, chúng tôi tạo một phương ngữ theo cùng một cách [thông qua
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
34] và sử dụng nó theo cùng một cách, bằng cách chỉ định nó theo tênVà một lần nữa, việc chạy đoạn mã trên dẫn đến đầu ra sau cho csvexample4 mới của chúng tôi. tệp csv
1/2/3
Good morning/Good afternoon/Good evening
1Sử dụng từ điển
Trong nhiều trường hợp, dữ liệu của chúng tôi sẽ không được định dạng dưới dạng mảng 2D [như chúng tôi đã thấy trong các ví dụ trước] và sẽ rất tuyệt nếu chúng tôi kiểm soát tốt hơn dữ liệu mà chúng tôi đọc. Để giải quyết vấn đề này, mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 cung cấp các lớp trợ giúp cho phép chúng tôi đọc/ghi dữ liệu CSV của mình vào/từ các đối tượng từ điển, giúp làm việc với dữ liệu dễ dàng hơn nhiềuTương tác với dữ liệu của bạn theo cách này sẽ tự nhiên hơn nhiều đối với hầu hết các ứng dụng Python và sẽ dễ dàng tích hợp vào mã của bạn hơn nhờ sự quen thuộc của
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
36Đọc tệp CSV bằng DictReader
Sử dụng trình soạn thảo văn bản yêu thích của bạn, tạo tệp CSV có tên quốc gia. csv với nội dung sau
1/2/3
Good morning/Good afternoon/Good evening
2Bây giờ, định dạng của dữ liệu này có thể hơi khác một chút so với các ví dụ của chúng tôi trước đây. Hàng đầu tiên trong tệp này chứa tên trường/cột, cung cấp nhãn cho từng cột dữ liệu. Các hàng trong tệp này chứa các cặp giá trị [quốc gia, thủ đô] được phân tách bằng dấu phẩy. Các nhãn này là tùy chọn, nhưng có xu hướng rất hữu ích, đặc biệt khi bạn phải tự mình xem dữ liệu này
Để đọc tệp này, chúng tôi tạo mã sau đây
1/2/3
Good morning/Good afternoon/Good evening
3Chúng tôi vẫn lặp qua từng hàng của dữ liệu, nhưng lưu ý cách bây giờ chúng tôi có thể truy cập các cột của từng hàng theo nhãn của chúng, trong trường hợp này là quốc gia. Nếu muốn, chúng tôi cũng có thể tiếp cận vốn với
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
37Chạy mã kết quả như sau
1/2/3
Good morning/Good afternoon/Good evening
4Ghi vào tệp bằng DictWriter
Chúng tôi cũng có thể tạo tệp CSV bằng từ điển của mình. Trong đoạn mã dưới đây, chúng tôi tạo một từ điển với các trường quốc gia và thủ đô. Sau đó, chúng tôi tạo một đối tượng
1/2/3
Good morning/Good afternoon/Good evening
8 ghi dữ liệu vào các quốc gia của chúng tôi. csv, có tập hợp các trường được xác định trước đó với danh sách import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
39Sau đó, trước tiên chúng tôi viết hàng tiêu đề bằng phương pháp
import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
60, sau đó là các cặp giá trị bằng phương pháp import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
98. Vị trí của mỗi giá trị trong hàng được chỉ định bằng cách sử dụng nhãn cột. Bạn có thể tưởng tượng điều này sẽ hữu ích như thế nào khi bạn có hàng chục hoặc thậm chí hàng trăm cột trong dữ liệu CSV của mình1/2/3
Good morning/Good afternoon/Good evening
5Và cuối cùng, việc chạy mã này mang lại cho chúng tôi đầu ra CSV chính xác, có nhãn và tất cả
1/2/3
Good morning/Good afternoon/Good evening
2Sự kết luận
Tệp CSV là định dạng lưu trữ tệp tiện dụng mà nhiều nhà phát triển sử dụng trong dự án của họ. Chúng nhỏ, dễ quản lý và được sử dụng rộng rãi trong quá trình phát triển phần mềm. Thật may mắn cho bạn, Python có một mô-đun dành riêng cho chúng, cung cấp các phương thức và lớp linh hoạt để quản lý tệp CSV một cách đơn giản và hiệu quả
Trong bài viết này, chúng tôi đã chỉ cho bạn cách sử dụng mô-đun
1/2/3
Good morning/Good afternoon/Good evening
42 Python để đọc và ghi dữ liệu CSV vào một tệp. Ngoài ra, chúng tôi cũng chỉ ra cách tạo phương ngữ và sử dụng các lớp trợ giúp như 1/2/3
Good morning/Good afternoon/Good evening
9 và import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
0 để đọc và ghi CSV từ/đến đối tượng import csv
with open['csvexample.csv', newline=''] as myFile:
reader = csv.reader[myFile]
for row in reader:
print[row]
36