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

Python中如何仅将输出结果中的号码保存至文本文件?

解决Python程序保存输出号码到文本文件的问题

首先,咱们先梳理下你当前代码的核心问题:原来的逻辑仅当ress和目标用户名匹配时才会写入文件,而且写完就直接break终止循环,所以只有第一个匹配的号码会被保存,而其他你在输出中看到的Number: xxx对应的号码都没有被写入文件。

要实现把所有输出里显示的号码(也就是所有打印Number: xxx的那些号码)保存到文本文件,我们可以这样修改代码:

def list_checker():
    list_file = input("List of numbers: ")
    usr = input("Username Target: ")
    
    # 避免使用Python关键字"list"作为变量名,换成更清晰的num_list
    with open(list_file, 'r') as f:
        num_list = f.read().splitlines()
    
    # 使用with语句打开输出文件,自动处理关闭操作,"a"是追加模式,"w"是覆盖原有内容
    with open("hit.txt", "a") as output_file:
        for num in num_list:
            try:
                ress = check(num, usr)
                if ress == '__err__':
                    print("Null")
                elif ress.lower() == usr.lower():
                    # 写入当前号码到文件,加换行符让每个号码单独一行
                    output_file.write(f"{num}\n")
                    print(f"Number: {num} <OK:)>")
                    # 如果你不需要找到第一个匹配就停止,可删除下面的break语句
                    # break
                else:
                    output_file.write(f"{num}\n")
                    print(f"Number: {num} <OK:)>")
            except Exception as e:
                # 建议捕获具体异常方便调试,这里暂时保留原有逻辑
                output_file.write(f"{num}\n")
                print(f"Number: {num} <OK:)>")

修改的关键点说明:

  • 变量名规范:把list改成num_list,避免和Python内置关键字冲突,提升代码可读性。
  • 安全的文件操作:用with语句处理文件读写,不需要手动调用close(),能自动释放文件资源,避免资源泄漏。
  • 统一写入逻辑:在所有打印Number: xxx的分支(else和except块)中添加写入操作,确保所有输出中显示的号码都被保存到文件。
  • 换行符处理:写入时添加\n,让每个号码单独占一行,方便后续查看和处理。
  • 可选的覆盖模式:如果希望每次运行程序时清空之前的结果,把open("hit.txt", "a")改成open("hit.txt", "w")即可(a是追加模式,w是覆盖模式)。

如果你还需要保存ress和号码的对应关系(比如原来的ress+":"+num),只需要把output_file.write(f"{num}\n")改成output_file.write(f"{ress}:{num}\n")就可以了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 15:52:57