Loại dấu phân cách trong python

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]
7
import 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]
0

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
1
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
2
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
3
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
4

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
1
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
70
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
71
import 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]
73

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
74

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
1
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
2
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
77
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
4

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
1
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
70
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
81
import 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]
83

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
74

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
85

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
1
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
2
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
88
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
4

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
1
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
70
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
81
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
93
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
94
import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
95
import 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 Python

csv. 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 CSV

Nó nhận các tham số sau

  • import csv
    
    with open['csvexample.csv', newline=''] as myFile:
        reader = csv.reader[myFile]
        for row in reader:
            print[row]
    
    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 CSV
  • import 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ữ

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 CSV

Phương thức này nhận các tham số sau

  • import csv
    
    with open['csvexample.csv', newline=''] as myFile:
        reader = csv.reader[myFile]
        for row in reader:
            print[row]
    
    2. Bất kỳ đối tượng nào có phương thức
    import 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ệp
  • import 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ụng
  • 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ữ

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ào

csv. 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ển

Lớ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ường

Và 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 ra

Cả 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
31

1/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à

  • 1/2/3
    Good morning/Good afternoon/Good evening
    
    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'

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ạn

phiê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]
0

Chú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ển

Nế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
4

Hã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
3

Như 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ột

Chú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ước

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
9

Như 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ã sau

import 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]
3

Nế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]
6

Mộ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úc

Mã 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]
99

import csv

with open['csvexample.csv', newline=''] as myFile:
    reader = csv.reader[myFile]
    for row in reader:
        print[row]
4

Tệ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ách

1/2/3
Good morning/Good afternoon/Good evening
0

Tươ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ên

Và 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
1

Sử 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ều

Tươ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
2

Bâ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
3

Chú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]
37

Chạy mã kết quả như sau

1/2/3
Good morning/Good afternoon/Good evening
4

Ghi 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]
39

Sau đó, 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ình

1/2/3
Good morning/Good afternoon/Good evening
5

Và 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
2

Sự 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

Các dấu phân cách trong Python là gì?

Ví dụ: ký tự bằng [=] đóng vai trò là dấu phân cách giữa tên và giá trị của một phép gán, trong khi ký tự dấu phẩy [,] được sử dụng để phân định đối số cho hàm, thành phần trong danh sách và bộ, v.v.

Dấu phân cách mặc định trong Python là gì?

Bạn có thể chỉ định dấu phân cách, dấu phân cách mặc định là khoảng trắng bất kỳ .

Tại sao dấu phân cách được sử dụng trong Python?

Các dấu phân cách được sử dụng trong các ngôn ngữ lập trình để chỉ định các ký tự hoặc chuỗi dữ liệu của bộ mã, đóng vai trò là ranh giới dữ liệu và mã, đồng thời tạo điều kiện thuận lợi cho việc giải thích mã và phân đoạn các bộ dữ liệu và chức năng được triển khai khác nhau

Dấu phân cách trong chuỗi là gì?

Trong lập trình máy tính, dấu phân cách là ký tự xác định phần đầu hoặc phần cuối của chuỗi ký tự [một chuỗi ký tự liền kề]. Ký tự phân cách không phải là một phần của chuỗi ký tự.

Chủ Đề