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?
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 # //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
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
Đã 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
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 delimitedTô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
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
//docs.python.org/2/library/csv.html cho Python 2.x //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" | |
# //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 | |
# //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.") |