[英]Python CSV, How to append data at the end of a row whilst reading it line by line (row by row)?
[英]Python: reading CSV file line by line, how to detect end?
我通過這個腳本讀取了 CSV 大文件(數百萬條記錄)。 如何檢測文件是否結束?
import csv
f = open("file.csv", newline='')
csv_reader = csv.reader(f)
while true:
do something with next(csv_reader)[6]
csv.reader
將完全讀取文件並將其存儲在也是iterable
的變量中。 要“逐行”閱讀,您需要:
for row in csv_reader:
do something
如果你直接想要最后一行:
with open(‘file_name.csv’,’r’) as file:
data = file.readlines()
lastRow = data[-1]
這將非常緩慢並且消耗 memory。 替代方案是使用 pandas。
顯而易見的解決方案是循環遍歷csv_reader
,正如這個答案所建議的那樣。 如果那不切實際, next
function的文檔說:
通過調用其
__next__()
方法從迭代器中檢索下一項。 如果給出默認值,則在迭代器耗盡時返回它,否則引發 StopIteration。
從而為您提供兩種檢測結束的方法。
我用 pandas 解決了它:
import pandas as pd
import numpy as np
csv_reader = pd.read_csv("file.csv", skiprows=2, usecols=[6])
csv_a = csv_reader.to_numpy()
此腳本跳過前 2 行,然后僅導入第 6 列並轉換為數組
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.