如何用Python读取文件中的数字并拼接为指定格式的列表?
问题描述
现有文件内容如下:
1 2 3 4 O 5 6 7 8
需求是读取文件中的数字,拼接后生成格式为[12345678]的结果。
当前尝试的Python代码如下:
a=[] with open(filename, 'r') as input: for line in input: if 'ONE' in line: break a.append(line) print(' '.join(a))
问题分析
这段代码存在几个明显问题:
- 终止判断条件错误:文件里是单个字母
O,代码里判断的是'ONE',根本触发不了break逻辑 - 未过滤非数字内容:就算break逻辑正确,后面的数字也读不到,而且没有判断每行是否为数字
- 拼接方式不符合需求:用空格拼接后输出的是带空格和换行的内容,不是要求的无间隔拼接格式
修正后的代码
numbers = [] with open('filename.txt', 'r') as f: for line in f: stripped_line = line.strip() # 去掉每行的换行符和首尾空白 if stripped_line.isdigit(): # 判断当前行是否为数字 numbers.append(stripped_line) # 拼接所有数字并包裹方括号 result = f"[{''.join(numbers)}]" print(result)
运行后会直接输出[12345678],完全符合需求。
内容的提问来源于stack exchange,提问作者clodia
相关产品推荐
相关产品推荐

