Hướng dẫn how to change csv delimiter in python - cách thay đổi dấu phân cách csv trong python

Tôi nghi ngờ đây là một vấn đề phổ biến, nhưng tôi không thể xác định được câu trả lời. Tôi đang cố gắng xóa tất cả các dấu phẩy khỏi tệp CSV và thay thế chúng bằng các dấu chấm. Tôi thường sử dụng SED hoặc VI cho việc này, nhưng tôi cần sử dụng một triển khai Python thuần túy. Đây là những gì tôi đã nghĩ ra cho đến nay:

import csv

with open("temp.csv", mode="rU") as infile:
    reader = csv.reader(infile, dialect="excel")    
    with open("temp2.txt", mode="w") as outfile:
        writer = csv.writer(outfile)
        for rows in reader:
            for parsed_item in rows:
                parsed_item = rows.replace(',', ':') # I can't do this with a list!
                writer.writerow(parsed_item)

Bất cứ ai có thể giúp tôi làm thế nào để làm điều này? Cảm ơn trước sự giúp đỡ của bạn.

Hỏi ngày 8 tháng 7 năm 2011 lúc 20:32Jul 8, 2011 at 20:32

Hướng dẫn how to change csv delimiter in python - cách thay đổi dấu phân cách csv trong python

2

Câu trả lời dễ hơn bạn nghĩ. Bạn chỉ cần đặt dấu phân cách cho csv.writer:

import csv

row = #your data

with open("temp.csv", mode="rU") as infile:
    reader = csv.reader(infile, dialect="excel")    
    with open("temp2.txt", mode="w") as outfile:
        writer = csv.writer(outfile, delimiter=':')
        writer.writerows(rows)

Bạn đang cố gắng thay thế , bằng : sẽ không làm bất cứ điều gì vì hàng đã được xử lý bởi

import csv

row = #your data

with open("temp.csv", mode="rU") as infile:
    reader = csv.reader(infile, dialect="excel")    
    with open("temp2.txt", mode="w") as outfile:
        writer = csv.writer(outfile, delimiter=':')
        writer.writerows(rows)
0.

Đã trả lời ngày 8 tháng 7 năm 2011 lúc 20:37Jul 8, 2011 at 20:37

3

Nếu bạn đang tìm cách đọc một CSV với dấu phân cách dấu phẩy và viết nó vào một tệp khác với các dấu phân cách bán nguyệt. Tôi nghĩ rằng một cách đơn giản hơn sẽ là:another file with semicolon delimiters. I think a more straightforward way would be:

reader = csv.reader(open("input.csv", "r"), delimiter=',')
writer = csv.writer(open("output.csv", 'w'), delimiter=';')
writer.writerows(reader)

Tôi thấy ví dụ này dễ hiểu hơn nhiều so với

import csv

row = #your data

with open("temp.csv", mode="rU") as infile:
    reader = csv.reader(infile, dialect="excel")    
    with open("temp2.txt", mode="w") as outfile:
        writer = csv.writer(outfile, delimiter=':')
        writer.writerows(rows)
1. Ngoài ra, nếu bạn làm việc với tệp bằng dấu phẩy và dấu chấm phẩy làm dấu phân cách. Bạn có thể sử dụng sniffer của tệp CSV để phát hiện dấu phân cách nào được sử dụng trước khi đọc tệp (ví dụ trong liên kết).

Ngoài ra, nếu bạn muốn viết lại trong cùng một tệp, hãy kiểm tra câu trả lời StackoverFlow này.

Đã trả lời ngày 21 tháng 3 năm 2018 lúc 19:09Mar 21, 2018 at 19:09

Hướng dẫn how to change csv delimiter in python - cách thay đổi dấu phân cách csv trong python

SylharesylhareSylhare

4.8107 Huy hiệu vàng55 Huy hiệu bạc73 Huy hiệu Đồng7 gold badges55 silver badges73 bronze badges

3

Tôi sẽ xây dựng câu trả lời của mình trên câu trả lời của @Sylhare. Trong Python3, chế độ 'U' không được chấp nhận. Vì vậy, giải pháp sau đây đã làm việc cho tôi:

import csv

reader = csv.reader(open("input.csv", newline=None), delimiter=',')
writer = csv.writer(open("output.csv", 'w'), delimiter=':')
writer.writerows(reader)

Đã trả lời ngày 22 tháng 5 năm 2020 lúc 19:31May 22, 2020 at 19:31

Hướng dẫn how to change csv delimiter in python - cách thay đổi dấu phân cách csv trong python

2

Tôi đang viết các tệp CSV từ dữ liệu RAW của JSON và nhận thấy rằng mô -đun

import csv

row = #your data

with open("temp.csv", mode="rU") as infile:
    reader = csv.reader(infile, dialect="excel")    
    with open("temp2.txt", mode="w") as outfile:
        writer = csv.writer(outfile, delimiter=':')
        writer.writerows(rows)
2 cũng hỗ trợ các trình phân cách khác nhau. Thí dụ:

with open('file_1.csv', 'w', encoding="utf-8-sig", newline = '') as myfile:
    wr = csv.DictWriter(myfile, fieldnames = table_fields, delimiter=';')
    wr.writeheader()
    wr.writerows(# my data #)

Đã trả lời ngày 28 tháng 2 năm 2020 lúc 11:25Feb 28, 2020 at 11:25

jeppoo1jeppoo1jeppoo1

5628 Huy hiệu bạc18 Huy hiệu Đồng8 silver badges18 bronze badges

Giả sử rằng CSV được phân định dấu phẩy và bạn muốn thay thế dấu phẩy trong mỗi mục, tôi tin rằng vấn đề đang thay thế sai mục:

for rows in reader:
    for parsed_item in rows:
        parsed_item = parsed_item.replace(',', ':') # Change rows to parsed_item
        writer.writerow(parsed_item)

Đã trả lời ngày 8 tháng 7 năm 2011 lúc 20:38Jul 8, 2011 at 20:38

Hướng dẫn how to change csv delimiter in python - cách thay đổi dấu phân cách csv trong python

ToreltwiddlertoreltwiddlerTorelTwiddler

5,8882 Huy hiệu vàng31 Huy hiệu bạc39 Huy hiệu Đồng2 gold badges31 silver badges39 bronze badges

Nếu bạn chỉ thay thế dấu phẩy bằng dấu chấm, bạn không cần phải sử dụng trình phân tích cú pháp CSV.

with open("file.csv", 'r') as f:
    with open("temp.csv", 'w') as t:
        for lines in f:
            new_line = line.replace(",",":")
            t.write(new_line)

Thông báo duy nhất là bạn không thể có dấu phẩy ở nơi khác trong tệp CSV.

Đã trả lời ngày 8 tháng 7 năm 2011 lúc 20:38Jul 8, 2011 at 20:38

ToreltwiddlertoreltwiddlerWilduck

5,8882 Huy hiệu vàng31 Huy hiệu bạc39 Huy hiệu Đồng10 gold badges57 silver badges89 bronze badges

2

Làm cách nào để thay đổi dấu phân cách CSV của tôi?

Tệp CSV, Excel phân tách các giá trị với bộ phân cách danh sách mặc định của bạn ...
Nhấp vào Tệp> Tùy chọn> Nâng cao ..
Trong các tùy chọn chỉnh sửa, hãy xóa hộp kiểm Hệ thống sử dụng hệ thống ..
Thay đổi bộ phân cách thập phân mặc định ..

Làm cách nào để sửa đổi tệp CSV trong Python?

Phương pháp 1..
Nhập mô -đun ..
Mở tệp CSV và đọc dữ liệu của nó ..
Tìm cột để được cập nhật ..
Cập nhật giá trị trong tệp CSV bằng hàm_csv () ..

Làm cách nào để thay đổi văn bản phân cách của tôi?

Thay đổi dấu phân cách được sử dụng khi nhập tệp văn bản Nếu bạn sử dụng get & chuyển đổi dữ liệu> từ văn bản/csv, sau khi bạn chọn tệp văn bản và nhấp vào nhập, chọn một ký tự để sử dụng từ danh sách theo Delimiter.after you choose the text file and click Import, choose a character to use from the list under Delimiter.

Làm cách nào để mở tệp CSV với dấu phân cách phân cách chính xác?

Dưới đây là các bước bạn nên làm theo:..
Mở CSV của bạn bằng trình soạn thảo văn bản.Windows: Notepad (notepad.exe) ....
Bỏ qua một dòng ở phía trên và thêm SEP =;Nếu bộ phân cách được sử dụng trong CSV là dấu chấm phẩy (;) hoặc SEP =, nếu dấu phân cách là dấu phẩy (,) ..
Lưu và mở lại tệp ..