Hướng dẫn convert csv to pipe delimited text file python - chuyển đổi csv thành tệp văn bản được phân tách bằng đường ống python

Tôi muốn chuyển đổi tệp CSV được phân phối bằng dấu phẩy thành tệp được chọn lọc bằng python:

Đây là cách tôi đang đọc tệp CSV của mình:

with open('C://Path//InputFile.csv') as fOpen:
    reader     =     csv.DictReader(fOpen)

    for row in reader:
        for (k, v) in row.items():
            columns[k].append(v)

c = csv.writer(open("C://Path//OutputFile.txt","wb"), delimiter="|")

Làm thế nào tôi sẽ viết nó dưới dạng tệp được phân định đường ống?

Hướng dẫn convert csv to pipe delimited text file python - chuyển đổi csv thành tệp văn bản được phân tách bằng đường ống python

Stevoisiak

21.5K26 Huy hiệu vàng118 Huy hiệu bạc208 Huy hiệu đồng26 gold badges118 silver badges208 bronze badges

Hỏi ngày 18 tháng 12 năm 2014 lúc 16:33Dec 18, 2014 at 16:33

1

Điều chỉnh câu trả lời của Martineau để khắc phục các vấn đề mới trong Python 3.

import csv

with open('C:/Path/InputFile.csv') as fin:
    # newline='' prevents extra newlines when using Python 3 on Windows
    # https://stackoverflow.com/a/3348664/3357935
    with open('C:/Path/OutputFile.txt', 'w', newline='') as fout:
        reader = csv.DictReader(fin, delimiter=',')
        writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
        writer.writeheader()
        writer.writerows(reader)

Đã trả lời ngày 19 tháng 9 năm 2018 lúc 16:27Sep 19, 2018 at 16:27

Hướng dẫn convert csv to pipe delimited text file python - chuyển đổi csv thành tệp văn bản được phân tách bằng đường ống python

StevoisiakstevoisiakStevoisiak

21.5K26 Huy hiệu vàng118 Huy hiệu bạc208 Huy hiệu đồng26 gold badges118 silver badges208 bronze badges

Hỏi ngày 18 tháng 12 năm 2014 lúc 16:33

import csv

with open('C:/Path/InputFile.csv', 'rb') as fin, \
     open('C:/Path/OutputFile.txt', 'wb') as fout:
    reader = csv.DictReader(fin)
    writer = csv.DictWriter(fout, reader.fieldnames, delimiter='|')
    writer.writeheader()
    writer.writerows(reader)

Điều chỉnh câu trả lời của Martineau để khắc phục các vấn đề mới trong Python 3.Dec 18, 2014 at 18:15

Hướng dẫn convert csv to pipe delimited text file python - chuyển đổi csv thành tệp văn bản được phân tách bằng đường ống python

Đã trả lời ngày 19 tháng 9 năm 2018 lúc 16:27martineau

Stevoisiakstevoisiak25 gold badges161 silver badges288 bronze badges

5

Điều này làm những gì tôi nghĩ bạn muốn:

df.to_csv(fileName, sep="|")

Đã trả lời ngày 18 tháng 12 năm 2014 lúc 18:15

MartineaumartineauMar 6, 2020 at 9:39

Hướng dẫn convert csv to pipe delimited text file python - chuyển đổi csv thành tệp văn bản được phân tách bằng đường ống python

Huy hiệu vàng 116K25

import pandas as pd
df = pd.read_csv(r'C:\Users\gupta\Documents\inputfile.csv') #read inputfile in a dataframe
df.to_csv(r'C:\Users\gupta\Desktop\outputfile.txt', sep = '|', index=False) #write dataframe df to the outputfile with pipe delimited

Tôi tìm thấy một cách nhanh chóng để thay đổi dấu phân cách dấu phẩy thành một đường ống với gấu trúc. Khi tôi chuyển đổi khung dữ liệu của mình thành CSV bằng cách sử dụng "|" như phân định:Jan 19, 2021 at 17:27

Hướng dẫn convert csv to pipe delimited text file python - chuyển đổi csv thành tệp văn bản được phân tách bằng đường ống python

Tôi không có nhiều kinh nghiệm với mô -đun csv, vì vậy nếu các giải pháp này không thể thay thế cho nhau thì ai đó có thể phải hòa nhập. Nhưng điều này hoạt động tốt cho tôi một cách đáng ngạc nhiên.

Đã trả lời ngày 6 tháng 3 năm 2020 lúc 9:39

Bạn có thể sử dụng gấu trúc để đạt được việc chuyển đổi tệp CSV thành tệp được chọn (hoặc phân định mong muốn).

Đã trả lời ngày 19 tháng 1 năm 2021 lúc 17:27Dec 18, 2014 at 16:49

https://docs.python.org/2/library/csv.html cho Python 2.x https://docs.python.org/3.3/library/csv.html cho Python 3.xGullydwarf

Các trang này giải thích cách sử dụng CSV.Writer.3 silver badges15 bronze badges

Tập lệnh Python để chuyển đổi CSV được phân phối bằng dấu phẩy thành tệp được chọn theo tab. (Kéo thả)

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

Nhập khẩu csv
Nhập khẩu sys
Nhập khẩu os
# Chuyển đổi các tệp CSV được phân phối bằng dấu phẩy sang các tệp được chọn lọc bằng ống
# Sử dụng: Tệp CSV kéo và thả qua tập lệnh để chuyển đổi nó.
inputPath = sys.argv [1] = sys.argv[1]
OutputPath = Os.Path.DirName (InputPath) +"/output.csv" = os.path.dirname(inputPath) + "/output.csv"
# https://stackoverflow.com/a/52410395/3357935
in ("Chuyển đổi CSV thành tệp được chọn cách sử dụng ...")("Converting CSV to tab-delimited file...")
withopen (inputPath) asinputfile: open(inputPath) as inputFile:
# newline = '' Ngăn chặn thêm dòng mới khi sử dụng Python 3 trên Windows
# https://stackoverflow.com/a/3348664/3357935
withopen (outputpath, 'w', newline = '') asoutputfile: open(outputPath, 'w', newline='') as outputFile:
reader = csv.dictreader (inputFile, delimiter = ',') = csv.DictReader(inputFile, delimiter=',')
writer = csv.dictwriter (outputFile, reader.fieldNames, delimiter = '|') = csv.DictWriter(outputFile, reader.fieldnames, delimiter='|')
Writer.WriteHeader ().writeheader()
writer.writerows (người đọc).writerows(reader)
In ("Chuyển đổi hoàn thành.")("Conversion complete.")

Tệp CSV có thể được phân định đường ống không?

Nếu tệp CSV của bạn bao gồm một trong hai dữ liệu được phân tách bằng ống/dấu phẩy thì bạn có thể đi với đường ống/dấu phẩy như một dấu phân cách khác nếu nó kết hợp với dấu phẩy và đường ống..

Tệp được phân định đường ống là gì?

Các định dạng được phân định Bất kỳ ký tự nào cũng có thể được sử dụng để phân tách các giá trị, nhưng các dấu phân cách phổ biến nhất là dấu phẩy, tab và ruột kết.Thanh dọc (còn được gọi là ống) và không gian đôi khi cũng được sử dụng.Các tiêu đề cột đôi khi được bao gồm dưới dạng dòng đầu tiên và mỗi dòng tiếp theo là một hàng dữ liệu.vertical bar (also referred to as pipe) and space are also sometimes used. Column headers are sometimes included as the first line, and each subsequent line is a row of data.