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 模式重新打开现有文件。
我是 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 模式重新打开现有文件。