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

如何借助外部文件实现print("{}")的内容输出?代码无报错但结果不符问题排查

问题分析与解决方案

你的代码没报错但没达到预期,核心问题出在这几个地方:

1. readlines()的返回值与条件判断错误

readlines()会把文件内容按行拆分成字符串列表,比如你的Filename.txt只有一行内容,data的实际值是['print("Hello world")\n'](末尾带有换行符)。你现在判断"print({})" in data,是在检查这个精确字符串是否是列表中的某一项——但你的文件里是print("Hello world"),完全不匹配,所以这个条件永远为False,里面的print语句根本不会执行,自然没有输出。

2. 文件打开模式冗余

你用的"tr"模式里,t是文本模式的默认值,没必要显式写,直接用"r"(只读文本模式)就够了。

针对需求的解决方案

看你的描述,你应该是想要么打印文件里的内容,要么执行文件里的Python代码,分两种情况给你方案:

情况一:单纯打印文件里的内容

如果只是想把Filename.txt里的内容显示出来,不需要执行代码,直接读取整个文件内容打印即可:

with open("Filename.txt", "r") as f:
    file_content = f.read()
    print(file_content)

执行后会输出:

print("Hello world")

情况二:执行文件里的Python代码

如果你想让文件里的print("Hello world")真正执行并输出Hello world,可以用exec()函数运行读取到的代码:

with open("Filename.txt", "r") as f:
    code_to_run = f.read()
    exec(code_to_run)  # 执行文件中的Python代码

执行后会直接输出:

Hello world

额外提示:如果你想匹配特定格式的print语句

如果你的需求是找到文件里类似print(...)的语句并处理,可以先读取整个内容,再用字符串查找或正则匹配:

import re

with open("Filename.txt", "r") as f:
    content = f.read()
    # 匹配所有print(...)形式的语句
    print_statements = re.findall(r'print\(.*?\)', content)
    for stmt in print_statements:
        print(stmt)  # 或者执行stmt:exec(stmt)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:07:30