Tôi đang phân tích tệp 20Gb và xuất các dòng đáp ứng một điều kiện nhất định cho tệp khác, tuy nhiên thỉnh thoảng python sẽ đọc trong 2 dòng cùng một lúc và nối chúng.Phân tích tệp văn bản lớn (20GB) bằng python - đọc theo 2 dòng là 1
inputFileHandle = open(inputFileName, 'r')
row = 0
for line in inputFileHandle:
row = row + 1
if line_meets_condition:
outputFileHandle.write(line)
else:
lstIgnoredRows.append(row)
Tôi đã kiểm tra kết thúc dòng trong tệp nguồn và kiểm tra dưới dạng nguồn cấp dữ liệu dòng (ascii char 10). Kéo ra các hàng vấn đề và phân tích cú pháp chúng trong sự cô lập hoạt động như mong đợi. Tôi có ấn một số giới hạn python ở đây không? Vị trí trong tập tin bất thường đầu tiên là khoảng mốc 4GB.
có bất thường nắm tay luôn luôn xảy ra nhất quán với cùng một dòng không? Ngoài ra, là 'lstIgnoredRows' một danh sách, lớn như thế nào mà phát triển? Tôi tự hỏi điều gì sẽ xảy ra nếu bạn chỉ lưu các dòng bạn quan tâm đến tệp đầu ra và không làm bất cứ điều gì với các dòng bạn muốn bỏ qua. – Levon
Có lẽ bạn có thể thử đọc từng phần nhỏ của tệp tại một thời điểm bằng cách sử dụng một phương thức lười biếng, tương tự như câu hỏi này? Cung cấp cho nó một shot http://stackoverflow.com/questions/519633/lazy-method-for-reading-big-file-in-python – prrao
Nó xảy ra ở cùng một dòng đếm mỗi lần. lstIgnoredRows có thể phát triển đến vài nghìn mục. – James