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

如何用循环读取整数文件并将每行内容存入不同变量?

关于读取行数不固定的整数文件并存储的解决方案

直接将每行整数存入不同的独立变量并不现实,也不推荐——因为文件行数不固定,你无法提前定义对应数量的变量,动态生成变量的操作不仅语法繁琐,还会导致后续代码难以维护、变量难以统一操作。

正确的做法是用**容器类型(比如列表、字典)**来存储所有整数,这类结构可以动态扩容,完美适配行数不固定的场景。

示例代码(Python)

假设你的文件内容每行是用中文顿号分隔的整数(如示例中的17、72、61、11、63、95、100),可以这样处理:

# 初始化空列表,用于存储所有读取到的整数
integer_list = []

# 打开文件(替换为你的实际文件名)
with open("your_file.txt", "r", encoding="utf-8") as file:
    # 逐行读取文件内容
    for line in file:
        # 处理每行:去除首尾空白字符,替换中文顿号为英文逗号,再分割成单个数字字符串
        num_strings = line.strip().replace("、", ",").split(",")
        # 遍历每个数字字符串,转换为整数后加入列表
        for s in num_strings:
            cleaned_s = s.strip()
            if cleaned_s:  # 跳过可能的空字符串(比如行尾多余的分隔符)
                integer_list.append(int(cleaned_s))

# 查看结果
print(integer_list)

为什么不推荐动态创建变量?

如果硬要通过代码动态生成变量(比如利用globals()或locals()函数),示例代码可能是这样:

count = 0
with open("your_file.txt", "r", encoding="utf-8") as file:
    for line in file:
        num_strings = line.strip().replace("、", ",").split(",")
        for s in num_strings:
            cleaned_s = s.strip()
            if cleaned_s:
                count += 1
                # 动态创建变量num_1、num_2...
                globals()[f"num_{count}"] = int(cleaned_s)

但这种方式存在明显问题:

  • 你无法直观知道生成了多少个变量,后续调用变量时需要手动记忆序号,极易出错
  • 无法批量对这些变量进行操作(比如求和、排序),而列表可以直接用sum(integer_list)、sorted(integer_list)完成
  • 代码可读性差,维护成本高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:30:33