我尝试将脚本的输出重定向到文件。 我不想做像
这样的事情python myscript.py > xy.out
因为很多变量都存储在我的ipython环境中,我喜欢把它带过来。
我尝试按照此链接
IPython: redirecting output of a Python script to a file (like bash >)
然而,当我尝试
时with redirect_output("my_output.txt"):
%run my_script.py
它给出错误
---> 10 self.sys_stdout = sys.stdout
NameError: global name 'sys' is not defined
有一个类似的解决方案可以将ipython shell的输出复制到文件中,但它说我的单元格未定义
https://www.quora.com/How-do-I-export-the-output-of-the-IPython-command-to-a-text-file-or-a-CSV-file
是否有一种更简单的方法或使用ipython构建功能? e.g。
在oracle sqlplus中有一个假脱机命令 e.g。
spool /tmp/abc
select * from table_x;
spool off
现在sql语句输出在/ tmp / abc
中这是ipython的等价物吗?
答案 0 :(得分:0)
问候语。我最终使用了这个解决方案:
import {noView} from 'aurelia-framework';
@noView
export class MyClass{
}
它不是很方便,但它有效!
答案 1 :(得分:0)
import time
from threading import Thread
import sys
#write the stdout to file
def log():
#for stop the thread
global run
while (run):
try:
global out
text = str(sys.stdout.getvalue())
with open("out.txt", 'w') as f:
f.write(text)
finally:
time.sleep(1)
%%capture out
run = True
print("start")
process = Thread(target=log, args=[]).start()
# do some work
for i in range(10, 1000):
print(i)
time.sleep(1)
run= False
process.join()