Python3行首尾空格处理文件函数及(NameError)报错解决求助
解决NameError并实现文件处理函数
首先,你遇到的NameError: name 'inputfile' is not defined是因为代码中引用了一个名为inputfile的变量,但它从未被定义过——大概率是你在函数里遗漏了参数定义,或者调用时没传入正确的变量名。
下面是一个完整的实现,完美匹配你需求的Python3函数:
def clean_txt_file(input_path, output_path=None): # 如果没指定输出路径,默认覆盖原文件 if output_path is None: output_path = input_path try: # 读取文件内容,逐行去除首尾空格 with open(input_path, 'r', encoding='utf-8') as f: # 保留换行符:strip后加\n,空行也会保留为空白行 cleaned_lines = [line.strip() + '\n' for line in f] # 写入处理后的内容 with open(output_path, 'w', encoding='utf-8') as f: f.writelines(cleaned_lines) print(f"文件处理完成,已写入到 {output_path}") except FileNotFoundError: print(f"错误:未找到文件 {input_path}") except Exception as e: print(f"处理过程中发生错误:{str(e)}")
函数说明:
- input_path:必填参数,要读取的txt文件路径
- output_path:可选参数,默认值为
None,此时会覆盖原文件;如果传入新路径,就写入到指定的新文件
示例用法:
- 直接覆盖原文件:
clean_txt_file("my_text.txt")
- 写入到新文件,保留原文件:
clean_txt_file("my_text.txt", "my_text_cleaned.txt")
关键细节:
- 用
with open()上下文管理器,确保文件自动关闭,避免资源泄漏 - 处理每行时用
strip()去除首尾空格,再手动加\n保证换行结构不被破坏(空行也会保留为空白行) - 加入了异常捕获,处理文件不存在等常见错误,让函数更健壮
这个函数能彻底解决你的需求,同时避免你遇到的NameError问题——只要调用时传入正确的文件路径参数就可以正常运行。
内容的提问来源于stack exchange,提问作者Lenny
相关产品推荐
相关产品推荐

