如何提取文件每行中pts/后的首个字符并以逗号分隔输出
解决方法
问题分析
你之前的代码有两个核心问题:
- 用
w = f.read()把整个文件读成了单个字符串,遍历w时是逐个字符遍历,而非按行遍历 - 每次分割都基于整个文件字符串,无法单独处理每行内容
正确代码实现
result = [] # 打开文件并按行遍历 with open("w.txt", "r") as f: for line in f: # 只处理包含pts/的行 if 'pts/' in line: # 提取pts/后的首个字符 target_char = line.split('pts/')[1][0] result.append(target_char) # 用逗号连接结果输出 print(','.join(result))
代码说明
- 用
with open()可以自动关闭文件,避免资源泄漏 - 直接遍历文件对象
f会按行读取内容,每个line对应文件里的一行 - 先判断行内是否包含
pts/,跳过表头、tty7这类不需要处理的行 line.split('pts/')[1]会获取pts/之后的所有内容,取索引0的字符就是目标数字- 最后用
','.join()把收集到的字符拼接成逗号分隔的格式输出
运行后会得到你期望的结果:1,3,0
内容的提问来源于stack exchange,提问作者udiipee
相关产品推荐
相关产品推荐

