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

Python:如何从含字符串与整数的文件中提取指定位置的整数?

解决方案:提取文件末尾的数字并转换为整数

没问题,这事儿很好解决!你的核心需求是跳过前面的字符串行,只把最后一行的3, 9拆成两个独立的整数对吧?我给你两个实用的实现方法:

方法一:直接定位最后一行(适合固定行数的文件)

如果你的文件结构固定,目标数字一定在最后一行,那就直接读取所有行后取最后一行处理:

with open("person.csv", "r") as file:
    # 读取所有行,同时去掉每行的换行符和前后空格
    lines = [line.strip() for line in file]

# 获取最后一行的内容
target_line = lines[-1]
# 按逗号分割字符串,去掉每个数字的空格后转成整数
x, y = [int(num.strip()) for num in target_line.split(",")]

print(f"提取到的整数:x={x}, y={y}")

代码解释:

  • line.strip():去掉每行末尾的换行符,以及内容前后的多余空格
  • lines[-1]:直接取列表的最后一个元素,也就是文件的最后一行
  • split(","):把"3, 9"拆成["3", " 9"],再用num.strip()去掉空格后转成整数

方法二:按特征匹配目标行(适合行数不固定的文件)

如果文件行数可能变化,但目标行一定包含逗号,那就逐行遍历找到目标行再处理:

with open("person.csv", "r") as file:
    for line in file:
        stripped_line = line.strip()
        # 判断当前行是否包含逗号(目标行的特征)
        if "," in stripped_line:
            # 拆分并转换为整数
            x, y = [int(num.strip()) for num in stripped_line.split(",")]
            # 找到目标行后直接跳出循环,不用继续读剩下的内容
            break

print(f"提取到的整数:x={x}, y={y}")

为什么你的原代码会报错?

你原代码里的[int(x) for x in file.read().split()]会把整个文件内容按空白字符(空格、换行)拆成["Bob", "Male", "43", "3,", "9"],然后尝试把所有元素都转成整数——但"Bob"是字符串,根本转不了整数,所以就触发了ValueError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:06:31