![](/img/trans.png)
[英]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.