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

Python3-txt中的类和模拟输出。文件,python,file,class,simulation,fileoutputstream,Python,File,Class,Simulation,Fileoutputstream,我是Python3新手,不知道如何将输出保存到文件中。我从其他讨论中了解到,您可以: f = open(filename, 'w') print('whatever', file = f) 但在我的例子中,我想要保存的输出不是以“打印”的形式写入的。正如您在下面看到的,我在另一个文件中调用类“truigest”,以便为我的不同动物(SOW['ID'])运行模拟: 你知道我如何在文件中获得输出吗 谢谢 您应该使用f.writeline()或f.write() 关于线路 TruieGest(so

我是Python3新手,不知道如何将输出保存到文件中。我从其他讨论中了解到,您可以:

f = open(filename, 'w') 
print('whatever', file = f)
但在我的例子中,我想要保存的输出不是以“打印”的形式写入的。正如您在下面看到的,我在另一个文件中调用类“truigest”,以便为我的不同动物(SOW['ID'])运行模拟:

你知道我如何在文件中获得输出吗


谢谢

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

关于线路

TruieGest(sows['ID'], sows['Age'], sows['Portee'])
我相信最简单的方法是将其转换为字符串,但上面的方法可能处理dict或list


(很抱歉,现在无法检查此问题)

假设您使用的是交互式Python提示符,并且您使用的是一个模块,无法完全控制/重写将其结果直接输出到屏幕上的模块

如果您想将其中的一些输出保存到文件中(可能您想以交互方式查看结果,并在将结果提交到文件之前修改一些参数),您可以执行以下操作

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.打印的
将与终端重新连接


PS如果您想将不同的输出段附加到同一个文件中,您可以。阅读有关
open
函数的内容,该函数可以在append模式下重新打开现有文件。

为什么不在return语句之前将它们写入一个文件中呢?您可以使用
f.write('whatevs')
f.close()
而不是print()。也许可以向我们提供
数据的内容。我敢打赌你可以在里面的文件里写点东西。谢谢。但是我对de f.write()中应该包含的内容有点迷茫:我想要打印的变量没有在主文件中定义,因为它们在类文件中,显然我不能只写f.write(模拟)。
15:16 boffi@debian:~ $ cat a_file.txt 
Hi Charlotte!