Python实现txt文件每行第5字符拼接新字符串的错误排查
代码问题分析
你编写的代码存在3处核心问题:
- 遍历对象错误:代码中
for line in filename是在遍历传入的文件名字符串,而非你打开的文件内容,正确的遍历对象应该是open()返回的文件实例file。 - 缺少边界校验:如果文件中存在长度不足5个字符的行,直接取
line[4]会抛出IndexError索引越界异常,需要先判断行长度再执行取值操作。 - 文件操作逻辑不安全:如果读取文件过程中出现异常,
file.close()方法可能不会被执行,会导致文件句柄泄漏,更稳妥的写法是用with上下文管理器自动处理文件关闭逻辑。
修正后的可运行代码
def fifthchar(filename): newstring = "" with open(filename, 'r', encoding='utf-8') as file: for line in file: # 仅在行长度足够时取第5个字符 if len(line) >= 5: newstring += line[4] return newstring
内容的提问来源于stack exchange,提问作者Aaron Valentine
相关产品推荐
相关产品推荐

