Dữ liệu nguồn của tôi nằm trong tệp TSV, 6 cột và lớn hơn 2 triệu hàng.đọc và phân tích cú pháp tệp TSV, sau đó thao tác nó để lưu dưới dạng CSV (* hiệu quả *)
Dưới đây là những gì tôi đang cố gắng để hoàn thành:
- tôi cần phải đọc dữ liệu trong 3 cột (3, 4, 5) trong nguồn tập tin này
- Cột thứ năm là một số nguyên . Tôi cần phải sử dụng giá trị số nguyên này để nhân đôi một mục nhập với việc sử dụng dữ liệu trong cột thứ ba và thứ tư (theo số lần nguyên).
- Tôi muốn ghi đầu ra của số 2 vào tệp đầu ra ở định dạng CSV.
Dưới đây là những gì tôi nghĩ ra.
Câu hỏi của tôi: đây có phải là cách hiệu quả để làm điều đó không? Nó có vẻ như nó có thể được chuyên sâu khi cố gắng trên 2 triệu hàng.
Trước tiên, tôi đã tạo một tệp riêng biệt của tab mẫu để làm việc và gọi nó là 'sample.txt'. Đó là cơ bản và chỉ có bốn hàng:
Row1_Column1 Row1-Column2 Row1-Column3 Row1-Column4 2 Row1-Column6
Row2_Column1 Row2-Column2 Row2-Column3 Row2-Column4 3 Row2-Column6
Row3_Column1 Row3-Column2 Row3-Column3 Row3-Column4 1 Row3-Column6
Row4_Column1 Row4-Column2 Row4-Column3 Row4-Column4 2 Row4-Column6
sau đó tôi có mã này:
import csv
with open('sample.txt','r') as tsv:
AoA = [line.strip().split('\t') for line in tsv]
for a in AoA:
count = int(a[4])
while count > 0:
with open('sample_new.csv','ab') as csvfile:
csvwriter = csv.writer(csvfile, delimiter=',')
csvwriter.writerow([a[2], a[3]])
count = count - 1
Thanks, điều này là hoàn hảo. Tôi đã bình chọn câu trả lời, nhưng không còn đủ điểm đại diện nữa. Đó là những gì tôi nhận được hỏi một câu hỏi ngu ngốc mà xuống bình chọn lúc đầu. – CJH
@CJH: NP, đã đạt đến giới hạn đại diện ngày hôm nay, do đó, đối với danh tiếng của tôi, nó sẽ không tạo ra sự khác biệt. :-) –
Xin lỗi vì sự thiếu hiểu biết của tôi, nhưng dấu gạch dưới ở hàng cuối cùng có nghĩa là gì/làm gì? –