Python实现文件内容转小写代码无效,请求问题排查
解决文件内容转小写的Python代码问题
嘿,我帮你瞅了瞅你写的代码,问题主要出在这几个地方:
- 你在函数里直接给参数
input_file重新赋值成了'aba.tok',这会把调用函数时传入的参数给覆盖掉,相当于这个参数白定义啦 - 你只是把每行转成了小写,但完全没把修改后的内容写回文件——修改后的
line只在内存里晃了一圈,根本没存到磁盘上,所以你看不到变化 - 虽然手动关闭文件的逻辑没报错,但用
with语句管理文件会更稳妥,它能自动帮你关闭文件,还能避免异常情况下文件没关闭的问题
给你改了两个版本的代码,根据你的需求选就行:
版本1:直接覆盖原文件
这个版本会把原文件的内容替换成小写后的内容,适合确定不需要保留原文件的情况:
def preprocessing(input_file): # 一次性读取文件所有内容 with open(input_file, 'r') as f: content = f.read() # 将小写后的内容写回原文件 with open(input_file, 'w') as f: f.write(content.lower()) # 调用函数,传入你的目标文件名 preprocessing('aba.tok')
版本2:写入新文件(更安全)
如果想保留原文件,就用这个版本,把小写后的内容写到新文件里:
def preprocessing(input_file, output_file): # 同时打开原文件和新文件,逐行处理写入 with open(input_file, 'r') as f_in, open(output_file, 'w') as f_out: for line in f_in: # 转小写后写入,注意保留原有的换行符 f_out.write(line.lower()) # 调用函数,传入原文件名和新文件名 preprocessing('aba.tok', 'aba_lower.tok')
这样修改后,就能实现把文件内容全部转成小写的需求啦~
内容的提问来源于stack exchange,提问作者AAlex
相关产品推荐
相关产品推荐

