You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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,此时会覆盖原文件;如果传入新路径,就写入到指定的新文件

示例用法:

  1. 直接覆盖原文件:
clean_txt_file("my_text.txt")
  1. 写入到新文件,保留原文件:
clean_txt_file("my_text.txt", "my_text_cleaned.txt")

关键细节:

  • 用with open()上下文管理器,确保文件自动关闭,避免资源泄漏
  • 处理每行时用strip()去除首尾空格,再手动加\n保证换行结构不被破坏(空行也会保留为空白行)
  • 加入了异常捕获,处理文件不存在等常见错误,让函数更健壮

这个函数能彻底解决你的需求,同时避免你遇到的NameError问题——只要调用时传入正确的文件路径参数就可以正常运行。

内容的提问来源于stack exchange,提问作者Lenny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:57:31