首页 编程教程正文

【笔记】30行代码,低内存占用解读超大csv文件

piaodoo 编程教程 2020-02-22 22:07:12 1151 0 python教程

本文来源吾爱破解论坛

[Python] 纯文本查看 复制代码

import shleximport datetime

if __name__ == "__main__":
    File_All_Path = r"D:\1000W行.csv"  # 以二进制方式读取文件
    File_ID = open(File_All_Path, "rb")
    LineNumber = 0  # 创建行号变量
    Read_Title = False  # 创建是否读标题变量
    Start_Time = datetime.datetime.now()  # 计时开始
    Line_Decode = "GBK"  # 设置编码
    while 1:
        Line_Byte = File_ID.readline()  # 读入一行二进制内容
        if not Line_Byte: break  # 判断二进制文本是否为空,为空则到文件尾部,跳出循环
        RowTest = Line_Byte.decode(Line_Decode).rstrip()  # 编码转换,并去除尾部的换行符号
        LineNumber += 1  # 行号变量自增
        if LineNumber == 1 and Read_Title == False: continue  # 是否读取第1行标题
        if LineNumber == 1000000:  # 读取第100W行内容
            str = shlex.shlex(RowTest, posix=True)  # 解析行内容数据,以逗号分割,不分割引号内容中的逗号
            str.whitespace = ','
            str.whitesapce_split = True
            ListTest = list(str)
            print(LineNumber, ListTest)
    End_Time = datetime.datetime.now()
    print("耗时:", End_Time - Start_Time)
    File_ID.close()

版权声明:

本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。

有关影视版权:本站只供百度云网盘资源,版权均属于影片公司所有,请在下载后24小时删除,切勿用于商业用途。本站所有资源信息均从互联网搜索而来,本站不对显示的内容承担责任,如您认为本站页面信息侵犯了您的权益,请附上版权证明邮件告知【754403226@qq.com】,在收到邮件后72小时内删除。本文链接:https://www.piaodoo.com/7591.html

搜索