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
相关产品推荐
相关产品推荐

