Python 3 print() 到变量

2024-05-22

在Python 3中,您可以使用 print 函数将数据写入文件(例如print('my data', file=my_open_file)。这很好(而且非常酷)。但你可以吗print到(字符串?)变量?如果是这样,怎么办?

在我的特定用例中,我试图避免将数据写入磁盘上的临时文件只是为了打开和读取该临时文件。

Edit:我不能只是分配,因为我的源数据不是字符串,而是由 BeautifulSoup 提取的 html 文档树的一部分。提取文档树后,我将逐行处理它。


My Code:(现在正在工作!)

with open("index.html", "r") as soup_file:
    soup = BeautifulSoup(soup_file)
THE_BODY = soup.find('body')
not_file = io.StringIO()
print(THE_BODY, file = not_file)    # dump the contents of the <body> tag into a file-like stream
with codecs.open('header.js', "w", "utf-8") as HEADER_JS:
    for line in not_file2.getvalue().split('\n'):
        print("headerblock += '{}'".format(line), file = HEADER_JS)

更好、更有效的代码:

with open("index.html", "r") as soup_file:
    soup = BeautifulSoup(soup_file)
with codecs.open('header.js', "w", "utf-8") as HEADER_JS:
    for line in str(soup.find('body')).split('\n'):
        print("headerblock += '{}'".format(line), file = HEADER_JS)

根据更新的问题更新的答复

如果您需要做的只是将对象转换为字符串,只需调用str变量上的函数...这就是print内部做。

a = str(soup.find('body'))

Calling print如果您需要的只是字符串表示形式,则可以执行一大堆您不需要的其他操作。


原始回复

您可以使用io.StringIO https://docs.python.org/3.4/library/io.html?highlight=stringio#text-i-o.

import io 
f = io.StringIO()
print('my data', file=f)

# to get the value back
a = f.getvalue()
print(a)
f.close()

请注意,在 python2 上,这是在StringIO.StringIO.

当您有预先存在的代码想要打印到文件,但您更愿意在变量中捕获该输出时,此解决方案非常有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 3 print() 到变量 的相关文章

随机推荐

  • C++ 模板似乎破坏了访问说明符

    由于明显的原因 以下代码无法编译 即 Foo 正在尝试访问 Bar 的私有成员 但是 如果您取消注释 注释标记的行 使 Foo 成为模板 它会编译并输出 42 我在这里缺少什么 为什么这有效 在我看来不应该 感谢您的帮助 include
  • 如何以编程方式向 DRF 3 中的 PrimaryKeyRelatedField 提供“queryset”

    为了有一个非只读PrimaryKeyRelatedField 您需要提供包含有效选项的查询集 如何根据当前请求 用户 正确填充该查询集 关键是子类化PrimaryKeyRelatedField并超载get queryset方法 使用请求上下
  • R 中的卡方拟合优度检验

    我有一个观察值向量 还有一个用模型计算的值向量 actual lt c 1411 439 214 100 62 38 29 64 expected lt c 1425 3 399 5 201 6 116 9 72 2 46 3 30 4 6
  • 连接两个表而不返回不需要的行

    我的表结构如下所示 tbl users tbl issues userid real name issueid assignedid creatorid 1 test 1 1 1 1 2 test 2 2 1
  • C++ GUI 桌面 Windows 应用程序的测试自动化工具/库/框架

    不幸的是 我有一个在 Windows 上运行的 GUI 桌面应用程序 并使用 Borland C 编译器进行编译 我知道这是一项非常古老的技术 但这就是生活 我工作的公司有很多免费的 QTP 许可证 但说实话 我不喜欢这个工具 我想用一些开
  • 在 Google App Engine 上连接 Mongoose

    我已在 Google App Engine 上成功部署了自定义 Node js 应用程序 但是 我在启动应用程序时遇到问题 因为猫鼬在尝试连接时超时 令人沮丧的是 猫鼬在我的本地计算机上以完全相同的参数连接得很好 我的 MongoDb UR
  • “gulp”不被识别为内部或外部命令

    我正在尝试使用Gulp http gulpjs com and Node Js https nodejs org en 流式传输我的生产过程中缩小和连接 CSS JS 文件的过程 这是我所做的 我安装了Node Js https nodej
  • 标记上存在语法错误,需要 AnnotationName - 查询错误

    我收到了令牌语法错误 AnnotationName 预期出现在以下行 query findInBackground new FindCallback
  • 使用 scipy 的solve_bvp 求解 BVP

    我有一个由 3 个微分方程组成的系统 我相信从代码中可以明显看出 具有 3 个边界条件 我设法在 MATLAB 中用一个循环来解决这个问题 一点一点地改变最初的猜测 而不会在程序即将返回错误时终止程序 然而 关于scipy s solve
  • ASP.Net MVC 3 JSON 模型绑定和服务器端模型验证与客户端验证混合

    我一直在使用新的 MVC3 Json 模型绑定 它非常好 目前 我可以将 JSON 发布到控制器并绑定它 模型验证也进展顺利 但如果模型无效怎么办 我想返回 JSON 并让客户端通知用户 就像在 mvc 中执行正常客户端验证的方式一样 有谁
  • C# 从字符串中删除制表符,制表符识别

    我想从字符串中删除制表符 我正在使用这段代码 但它不起作用 string strWithTabs here is a string with a tab tab character char tab u0009 String line st
  • 使用 SciKit-learn 和大型数据集进行文本分类

    首先 我昨天开始学习Python 我正在尝试使用 SciKit 和大型数据集 250 000 条推文 进行文本分类 对于该算法 每条推文都将表示为 4000 x 1 向量 因此这意味着输入为 250 000 行和 4000 列 当我尝试在
  • 使用 C# 查找数据表中的最小值和最大值[重复]

    这个问题在这里已经有答案了 可能的重复 如何选择数据表中列的最小值和最大值 https stackoverflow com questions 2442525 how to select min and max values of a co
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 优化大数据读写(C++)

    我正在寻求优化 C 模拟应用程序的读取 写入大量数据 称为 映射 的数据本质上由整数 双精度数 浮点数和单个枚举组成 该地图数据的大部分大小是固定的 但一小部分可能会变化 从几KB到几KB 大小 几个这样的映射 通常是数百万个 在应用程序启
  • 如何使 PowerShell 函数调用超时

    我编写了一个小 powershell 函数 用于对远程服务器执行 Get EventLog 在某些服务器上 这似乎只是挂起并且永远不会超时 我可以使 powershell 函数调用超时吗 我知道如何针对不同的过程 https stackov
  • 如何让 Visual Studio 连接到 Windows 应用商店?

    我尝试在 Visual Studio 2015 中创建应用程序包以上传到 Windows 应用商店 但每次尝试连接到应用商店都会导致错误 An unexpected network error has occurred The app li
  • C++11 是否允许在标识符中使用美元符号?

    C 03 中的标识符中允许使用美元符号吗 https stackoverflow com questions 936744 are dollar signs allowed in identifiers in c03涵盖了 C 03 中不允
  • 如何使用 POCO 发送 websocket PONG 响应

    我正在尝试使用 POCO 1 7 5 设置 websocket 服务器 POCO的样本发现here https github com pocoproject poco blob develop Net samples WebSocketSe
  • Python 3 print() 到变量

    在Python 3中 您可以使用 print 函数将数据写入文件 例如print my data file my open file 这很好 而且非常酷 但你可以吗print到 字符串 变量 如果是这样 怎么办 在我的特定用例中 我试图避免