请问如何在Python中读取大文件?
我有一个几GB的大文件需要读取并处理,常规的读取方法似乎会导致内存不足,有没有什么高效的方法呢?
6个回答
排序:
已采纳
你可以使用迭代器来分块读取大文件。例如,使用`withopen('filename','r')asfile:`和`forlineinfile:`这样的代码结构,确保每次只读取一行,节省内存。
可以试试`pandas`库中的`read_csv`函数,添加参数`chunksize`来分批读取文件,比如`pd.read_csv('filename.csv',chunksize=1000)`,每次只加载1000行数据。
用`yield`关键字创建生成器函数,逐行读取并处理大文件。这样能够有效避免内存溢出问题。
使用`mmap`模块将文件映射到内存中,然后像操作内存一样操作文件,这样效率会更高。
Python的`dask`库也很适合处理大数据文件,`dask.dataframe.read_csv('filename.csv')`可以像`pandas`一样操作,但效率更高。
可以用Linux命令`split`将大文件分割成小文件,再用Python分别读取处理。