Trong cơ bản, tôi đã có quy trình tiếp theo.Làm cách nào để bạn chia tệp csv thành các khối có kích thước đồng đều bằng Python?
import csv
reader = csv.reader(open('huge_file.csv', 'rb'))
for line in reader:
process_line(line)
Xem liên quan này question. Tôi muốn gửi dòng xử lý mỗi 100 hàng, để thực hiện hàng loạt sharding.
Sự cố khi triển khai câu trả lời có liên quan là đối tượng csv không thể ghi đè và không thể sử dụng len.
>>> import csv
>>> reader = csv.reader(open('dataimport/tests/financial_sample.csv', 'rb'))
>>> len(reader)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: object of type '_csv.reader' has no len()
>>> reader[10:]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '_csv.reader' object is unsubscriptable
>>> reader[10]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '_csv.reader' object is unsubscriptable
Tôi làm cách nào để giải quyết vấn đề này?
Sự cố là đăng ký tệp, bắt buộc phải đọc tất cả các dòng của tệp. Đây là một tập tin thực sự rất lớn và sử dụng bộ nhớ tăng lên nhiều nếu tôi làm điều đó. –
Đẹp, cảm ơn @TheMYYN :-) –
@Mario: Đã thêm phiên bản trình tạo, có thể nhanh hơn (nhưng tôi không có thời gian để thử nghiệm - có thể bạn đã làm). – miku