You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何读取存储1600万位圆周率的长数值TXT文件并保存为列表

Python处理超长圆周率TXT文件并转换为列表的实现方案

你现有的参考代码存在选型错误:用pandas的read_csv处理纯圆周率数值的文本文件并不合适,read_csv是用来读取带分隔符的结构化表格数据的,如果你的pi.txt是连续存储的圆周率数字(仅含数字、小数点和换行符),用这个方法读取不仅会出现格式解析错误,还会增加不必要的性能开销。

1600万位的圆周率文本实际体积仅十几MB,绝大多数设备都可以直接全量加载,你可以直接用Python原生文件操作实现需求,不需要引入第三方依赖:

方案1:全量读取(适合绝大多数场景)

# 打开文件读取全部内容
with open('/home/pp/Pictures/pi.txt', 'r', encoding='utf-8') as f:
    content = f.read()
# 过滤非数字字符(去掉小数点、换行、空格等无效内容),逐位转成列表元素
pi_list = [int(char) for char in content if char.isdigit()]

如果你的文件体积更大、担心内存溢出,可以用逐块读取的方式处理:

方案2:逐块读取(适合超大型文件避免内存溢出)

pi_list = []
# 单次读取1MB内容,可根据设备内存调整块大小
chunk_size = 1024 * 1024
with open('/home/pp/Pictures/pi.txt', 'r', encoding='utf-8') as f:
    while True:
        chunk = f.read(chunk_size)
        # 读到文件末尾结束循环
        if not chunk:
            break
        # 逐位处理当前块的有效数字
        for char in chunk:
            if char.isdigit():
                pi_list.append(int(char))

以上两种方案最终得到的pi_list就是按顺序存储圆周率每一位数字的列表。

内容的提问来源于stack exchange,提问作者Vicente Romero

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:24:00