Python3 - Class 和 txt 中的模拟输出。文件

Python3 - Class and simulation outputs in a txt. file

我是 Python3 的新手,不知道如何将输出保存到文件中。我从其他讨论中知道你可以这样做:

f = open(filename, 'w') 
print('whatever', file = f)

但在我的例子中,我想要保存的输出没有写在 "print" 中。正如您在下面看到的,我将另一个文件中的 class "TruieGest" 调用为 运行 对我的不同动物(母猪 ['ID'])的模拟:

def simulation():
  for sows['ID'] in sows['ID']:
    SowGest = TruieGest(sows['ID'], sows['Age'], sows['Portee'])
    SowGest.data_lactation()
    return simulation

simulation()
sorties.close()

知道如何在文件中获取输出吗?

谢谢!

您应该使用 f.writeline()f.write()

关于线路

TruieGest(sows['ID'], sows['Age'], sows['Portee'])

我相信最简单的事情就是将其转换为字符串,但也许上面的方法可以处理字典或列表。

(抱歉,现在无法查看)

假设您正在使用交互式 Python 提示并且您正在使用一个模块,您不能完全 control/rewrite 将其结果直接输出到屏幕。

如果你想做的是将其中一些输出保存到文件中(也许你想以交互方式查看结果,并 fiddle 在将结果提交到文件之前使用一些参数)你可以这样做关注

15:14 boffi@debian:~ $ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> def f(): print('Hi Charlotte!')
>>> f()
Hi Charlotte!
>>> with open('a_file.txt', 'w') as sys.stdout:
...     f()

如您所见(如果您尝试我的代码...)第二个函数调用不打印任何内容,我们可以从 shell

中看到 a_file.txt 的内容
15:16 boffi@debian:~ $ cat a_file.txt 
Hi Charlotte!

我想这就是您所需要的。

如果你想知道它是如何工作的...首先你 import sys,这是与系统交互的标准库模块,当你想提交方法输出时,你 暂时 重新分配(使用with 语句)标准输出流(sys.stdout) 到一个文件对象。缩进的 with 块(技术上是 上下文管理器 )后面的所有语句都不会打印到终端,而是打印到文件。另一个好处是,当您缩进代码时 1. 文件会自动关闭并且 2. print 与终端重新连接。

PS 如果您想将不同的输出段附加到同一个文件,您可以。了解 open 函数,它能够以 append 模式重新打开现有文件。