Hướng dẫn how do i specify a delimiter in csv python? - làm cách nào để chỉ định dấu phân tách trong csv python?

Tệp CSV với trình phân cách tùy chỉnh

Theo mặc định, dấu phẩy được sử dụng làm dấu phân cách trong tệp CSV. Tuy nhiên, một số tệp CSV có thể sử dụng các trình phân cách khác ngoài dấu phẩy. Vài người phổ biến là |\t.

import csv
data_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, delimiter='|')
    writer.writerows(data_list)

output:

SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming

Viết các tệp CSV có báo giá

import csv

row_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerows(row_list) 

output:

"SN";"Name";"Contribution"
1;"Linus Torvalds";"Linux Kernel"
2;"Tim Berners-Lee";"World Wide Web"
3;"Guido van Rossum";"Python Programming"

Như bạn có thể thấy, chúng tôi đã chuyển

SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
0 cho tham số
SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
1. Nó là một hằng số được xác định bởi mô -đun
SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
2.

SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
0 Chỉ định đối tượng
SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
4 rằng các trích dẫn nên được thêm vào xung quanh các mục không phải là số.

Có 3 hằng số được xác định trước khác mà bạn có thể chuyển đến tham số

SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
1:

  • SN|Name|Contribution
    1|Linus Torvalds|Linux Kernel
    2|Tim Berners-Lee|World Wide Web
    3|Guido van Rossum|Python Programming
    
    6 - Chỉ định đối tượng
    SN|Name|Contribution
    1|Linus Torvalds|Linux Kernel
    2|Tim Berners-Lee|World Wide Web
    3|Guido van Rossum|Python Programming
    
    4 để viết tệp CSV với các trích dẫn xung quanh tất cả các mục.
  • SN|Name|Contribution
    1|Linus Torvalds|Linux Kernel
    2|Tim Berners-Lee|World Wide Web
    3|Guido van Rossum|Python Programming
    
    8 - Chỉ định đối tượng
    SN|Name|Contribution
    1|Linus Torvalds|Linux Kernel
    2|Tim Berners-Lee|World Wide Web
    3|Guido van Rossum|Python Programming
    
    4 chỉ trích dẫn các trường có chứa các ký tự đặc biệt (Delimiter, Quotechar hoặc bất kỳ ký tự nào trong lineterminator)
  • import csv
    
    row_list = [["SN", "Name", "Contribution"],
                 [1, "Linus Torvalds", "Linux Kernel"],
                 [2, "Tim Berners-Lee", "World Wide Web"],
                 [3, "Guido van Rossum", "Python Programming"]]
    with open('innovators.csv', 'w', newline='') as file:
        writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
        writer.writerows(row_list) 
    
    0 - Chỉ định đối tượng
    SN|Name|Contribution
    1|Linus Torvalds|Linux Kernel
    2|Tim Berners-Lee|World Wide Web
    3|Guido van Rossum|Python Programming
    
    4 rằng không có mục nào trong số các mục nên được trích dẫn. Nó là giá trị mặc định.
import csv

row_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC,
                        delimiter=';', quotechar='*')
    writer.writerows(row_list)

output:

*SN*;*Name*;*Contribution*
1;*Linus Torvalds*;*Linux Kernel*
2;*Tim Berners-Lee*;*World Wide Web*
3;*Guido van Rossum*;*Python Programming*

Ở đây, chúng ta có thể thấy rằng tham số

import csv

row_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerows(row_list) 
2 hướng dẫn đối tượng
SN|Name|Contribution
1|Linus Torvalds|Linux Kernel
2|Tim Berners-Lee|World Wide Web
3|Guido van Rossum|Python Programming
4 sử dụng
import csv

row_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerows(row_list) 
4 làm báo giá cho tất cả các giá trị không phải là số.

Trong bài đăng trên blog này, chúng tôi sẽ chỉ cho bạn cách thay đổi dấu phân cách trong tệp CSV bằng Python. Tệp CSV (Giá trị phân tách bằng dấu phẩy) là một tệp văn bản sử dụng dấu phẩy để các giá trị riêng biệt và có thể được mở trong Microsoft Excel, Google Sheets, trình soạn thảo văn bản và hơn thế nữa.

Có thể đã có lúc bạn cần thay đổi dấu phân cách để, ví dụ, nhập tệp của bạn vào một ứng dụng. Trong ví dụ này, chúng tôi sẽ thay đổi dấu phân cách từ dấu phẩy thành dấu chấm phẩy.

Trước khi chúng ta bắt đầu

Nếu bạn chưa cài đặt Python trên máy tính, hãy làm theo các bước 1 và 2 của bài đăng trên blog, hãy chuyển đổi PDF sang Excel, CSV hoặc XML với Python. Bây giờ bạn sẽ có thư viện Python, Anaconda và Pdftables Python.

Tôi sẽ thay đổi dấu phân cách trong hóa đơn mẫu từ một công ty vận chuyển hàng hóa đã được chuyển đổi từ PDF sang CSV bằng pdftables.com.

Hướng dẫn how do i specify a delimiter in csv python? - làm cách nào để chỉ định dấu phân tách trong csv python?

Bước 1

Tạo một tệp Python mới ở vị trí lưu tệp CSV của bạn. Đảm bảo tệp được lưu dưới dạng định dạng

import csv

row_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerows(row_list) 
5 và sử dụng tên tệp mà bạn chọn. Thêm mã sau vào tệp mới:

import csv

reader = csv.reader(open("freight_invoice.csv", "rU"), delimiter=',')
writer = csv.writer(open("output.txt", 'w'), delimiter=';')
writer.writerows(reader)

print("Delimiter successfully changed")

Bạn sẽ cần thực hiện một số hoặc tất cả các thay đổi sau đây cho tập lệnh:

  • Thay thế
    import csv
    
    row_list = [["SN", "Name", "Contribution"],
                 [1, "Linus Torvalds", "Linux Kernel"],
                 [2, "Tim Berners-Lee", "World Wide Web"],
                 [3, "Guido van Rossum", "Python Programming"]]
    with open('innovators.csv', 'w', newline='') as file:
        writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
        writer.writerows(row_list) 
    
    6 bằng tên của tệp đầu vào của bạn
  • Thay thế
    import csv
    
    row_list = [["SN", "Name", "Contribution"],
                 [1, "Linus Torvalds", "Linux Kernel"],
                 [2, "Tim Berners-Lee", "World Wide Web"],
                 [3, "Guido van Rossum", "Python Programming"]]
    with open('innovators.csv', 'w', newline='') as file:
        writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
        writer.writerows(row_list) 
    
    7 bằng tên bạn muốn cung cấp tệp đầu ra của mình
  • Thay thế dấu chấm phẩy trong
    import csv
    
    row_list = [["SN", "Name", "Contribution"],
                 [1, "Linus Torvalds", "Linux Kernel"],
                 [2, "Tim Berners-Lee", "World Wide Web"],
                 [3, "Guido van Rossum", "Python Programming"]]
    with open('innovators.csv', 'w', newline='') as file:
        writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
        writer.writerows(row_list) 
    
    8 bằng một dấu phân cách mới mà bạn chọn

Bước 2

Mở một ví dụ nhắc nhở Anaconda. Bạn có thể tìm thấy điều này bằng cách tìm kiếm trong hộp tìm kiếm máy tính của bạn. Nhấn Enter để mở một thể hiện.

Xác định vị trí thư mục trong đó tập lệnh Python được lưu bằng cách sử dụng

import csv

row_list = [["SN", "Name", "Contribution"],
             [1, "Linus Torvalds", "Linux Kernel"],
             [2, "Tim Berners-Lee", "World Wide Web"],
             [3, "Guido van Rossum", "Python Programming"]]
with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_NONNUMERIC, delimiter=';')
    writer.writerows(row_list) 
9 hoặc
"SN";"Name";"Contribution"
1;"Linus Torvalds";"Linux Kernel"
2;"Tim Berners-Lee";"World Wide Web"
3;"Guido van Rossum";"Python Programming"
0 để di chuyển xung quanh các thư mục.

Hướng dẫn how do i specify a delimiter in csv python? - làm cách nào để chỉ định dấu phân tách trong csv python?

Bước 3

Nhập

"SN";"Name";"Contribution"
1;"Linus Torvalds";"Linux Kernel"
2;"Tim Berners-Lee";"World Wide Web"
3;"Guido van Rossum";"Python Programming"
1 (thay thế
"SN";"Name";"Contribution"
1;"Linus Torvalds";"Linux Kernel"
2;"Tim Berners-Lee";"World Wide Web"
3;"Guido van Rossum";"Python Programming"
2 bằng tên của tệp Python của bạn) sau đó nhấn Enter.

Tệp được phân tách bằng dấu phẩy bây giờ sẽ được đọc trong đó một tệp mới sẽ được xuất ở định dạng

"SN";"Name";"Contribution"
1;"Linus Torvalds";"Linux Kernel"
2;"Tim Berners-Lee";"World Wide Web"
3;"Guido van Rossum";"Python Programming"
3 với dấu phân cách mới. Bạn sẽ thấy tin nhắn
"SN";"Name";"Contribution"
1;"Linus Torvalds";"Linux Kernel"
2;"Tim Berners-Lee";"World Wide Web"
3;"Guido van Rossum";"Python Programming"
4 sau khi tập lệnh đã chạy xong.

Bước 4

Bây giờ bạn có thể mở tệp mới trong trình soạn thảo văn bản hoặc nhập nó vào một ứng dụng.

Hướng dẫn how do i specify a delimiter in csv python? - làm cách nào để chỉ định dấu phân tách trong csv python?


Chuyển đổi PDF thành CSV đầu tiên

Nếu bạn cần trích xuất dữ liệu từ PDF trước, bạn có thể chuyển đổi PDF sang CSV bằng pdftables.com. Mã sau sử dụng API PDFTables để chuyển đổi PDF thành CSV, sau đó sử dụng đoạn mã từ phía trên để thay đổi dấu phân cách.

import csv
import pdftables_api

c = pdftables_api.Client('my-api-key')
c.csv('freight_invoice.pdf', 'freight_invoice.csv') 

reader = csv.reader(open("freight_invoice.csv", "rU"), delimiter=',')
writer = csv.writer(open("output.txt", 'w'), delimiter=';')
writer.writerows(reader)

print("Delimiter successfully changed")

Bạn sẽ cần thực hiện các thay đổi sau đây cho tập lệnh:

  • Thay thế
    "SN";"Name";"Contribution"
    1;"Linus Torvalds";"Linux Kernel"
    2;"Tim Berners-Lee";"World Wide Web"
    3;"Guido van Rossum";"Python Programming"
    
    5 bằng khóa API của bạn mà bạn sẽ tìm thấy ở đây.

Bạn còn có câu hỏi nào nữa không?

Kiểm tra các bài viết blog khác của chúng tôi ở đây hoặc trang Câu hỏi thường gặp của chúng tôi. Ngoài ra, hãy liên hệ với chúng tôi.

Tình yêu pdftables? Để lại cho chúng tôi một đánh giá trên trang TrustPilot của chúng tôi!

Làm cách nào để chỉ định một dấu phân cách trong tệp CSV?

Cách thay đổi bộ phân cách trường (DELIMITER) trong Excel khi lưu dưới dạng tệp CSV..
Trong Microsoft Windows, nhấp vào nút Bắt đầu và sau đó nhấp vào Bảng điều khiển ..
Mở hộp thoại để thay đổi cài đặt khu vực và ngôn ngữ ..
Trong hộp thoại, hãy tìm cài đặt phân tách danh sách. ....
Nhập bộ phân cách danh sách mong muốn ..

Chức năng nào được sử dụng để chỉ định dấu phân cách trong CSV?

Định dạng tệp CSV có các mục dữ liệu được phân tách bằng dấu phân cách khác với dấu phẩy.Điều này bao gồm dấu chấm phẩy, dấu hai chấm, không gian tab, thanh dọc, v.v ... Trong những trường hợp như vậy, chúng ta cần sử dụng tham số SEP bên trong hàm read.csv ().sep parameter inside the read. csv() function.

Làm cách nào để đọc tệp CSV bằng cách sử dụng Delimiter trong Python?

Đọc một tệp CSV bằng Python..
Sử dụng thư viện CSV.Nhập CSV với Open ("./ Bwq.csv", 'r') dưới dạng tệp: csvreader = csv.reader (tệp) cho hàng trong csvreader: in (hàng) ở đây chúng tôi đang nhập thư viện CSV để sử dụng.....
Sử dụng thư viện Pandas.Nhập gấu trúc dưới dạng dữ liệu PD = pd.Read_CSV ("BWQ.CSV") dữ liệu ..