【问题标题】:How to print to screen and save to file in one-line?如何在一行中打印到屏幕并保存到文件?
【发布时间】:2020-09-16 07:34:45
【问题描述】:

是否可以单行打印到屏幕并保存到文件?

以下保存到文件:

with open('file.txt', 'a') as f:
   print('hello world', file=f)

目前要打印到屏幕并保存到文件必须执行以下操作:

print['hello world')
print('hello world', file=f)

我找不到任何关于单行的答案。

我想可以定义一个函数来避免代码中的行,但仍然想知道是否可以在一行中完成所有操作

【问题讨论】:

  • 写一个两者都做的方法,然后在一行中使用这个方法,printBoth("This is content")
  • 日志记录并不是我一直在寻找的@azro,但如果我找不到解决方案,我会重新审视它。但是,是的,一种兼顾两者的方法听起来是可行的

标签: python printing


【解决方案1】:

您正在寻找适合 Python 的 tee。这样的包——tee - exists in PyPI

您也可以用几行代码自己构建一个 - 我维护的一个大包的原始作者就是这样做的,我的代码至今仍在使用它。当然,不需要那个,因为包是可用的。

【讨论】:

  • 感谢@Amitai Iron!这似乎是可行的,即使我试图避免不必要的代码行以使其更清洁,但似乎没有办法避免这种情况。
【解决方案2】:

试试下面的片段,我在 Jupyter Notebook 中成功了

f=open('file.txt','a');print('hello world');f.write('hello world');f.close()

【讨论】:

  • 我不认为他真的是这个意思。
  • 这甚至不会将消息保存到文件中。
  • 这也是一行吗?
  • 该选项没有将消息写入使用Python3.7的文件
  • 文件写入你运行脚本的目录,我忘记了 f.write("Hello World")
猜你喜欢
  • 1970-01-01
  • 2013-06-27
  • 2012-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多