Python实现txt文件每行整数翻倍的代码无响应问题排查
代码问题分析
- 缩进错误:函数
mult_num3的所有函数体代码没有缩进,属于Python基础语法错误,若你本地未触发报错大概率是粘贴代码时丢失了缩进,即便缩进正确还存在以下问题 - 文件打开模式错误:你用
'r'只读模式打开文件,后续执行写入操作会直接抛出异常 - 文件指针位置错误:你新增的
reading = f.read()语句会一次性读取文件全部内容,执行完成后文件指针会移动到文件末尾,后续的for line in f遍历会读不到任何内容,导致data列表为空,后续写入逻辑完全不会执行,这是你新增代码后看不到效果也看不到报错的核心原因 - 写入类型错误:
file.write()方法只接受字符串类型参数,直接传入整数会抛出类型错误 - 资源操作逻辑错误:
with语句块结束后会自动关闭绑定的文件对象,后续再调用w.close()属于无效操作,且不应该在只读模式下直接写入原文件,容易造成原文件内容损坏
修复后可运行代码
def mult_num3(): # 先以只读模式读取所有内容 with open('file3.txt', 'r', encoding='utf-8') as f: # 按行读取并过滤空行,直接转成整数 nums = [int(line.strip()) for line in f if line.strip()] # 计算完成后以覆盖写模式写入原文件 with open('file3.txt', 'w', encoding='utf-8') as f: for num in nums: # 转换为字符串并补充换行符后写入 f.write(f"{num * 2}\n") # 调用函数执行逻辑 mult_num3()
运行上述代码后,file3.txt的内容就会更新为你预期的每行整数翻倍的结果。
内容的提问来源于stack exchange,提问作者Mr.Mongo
相关产品推荐
相关产品推荐

