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.4K25 Huy hiệu vàng118 Huy hiệu bạc208 Huy hiệu đồng25 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.4K25 Huy hiệu vàng118 Huy hiệu bạc208 Huy hiệu đồng25 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 badges287 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 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
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
Không kiểm tra nó, mã của bạn trông có giá trị cú pháp. Tất cả những gì bạn cần làm là thêm một số c.writerow['data','here']
để viết dữ liệu của bạn.
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."] |