我知道可以通过run test.py
在IPython中运行脚本并从那里进行调试。
但是如何将输出导入到test.py
中呢?例如,通常可以在命令行中运行grep "ABC" input.txt | ./test.py
,但在IPython中该怎么做呢?
谢谢!
我知道可以通过run test.py
在IPython中运行脚本并从那里进行调试。
但是如何将输出导入到test.py
中呢?例如,通常可以在命令行中运行grep "ABC" input.txt | ./test.py
,但在IPython中该怎么做呢?
谢谢!
import sys
INPUT = sys.stdin
def do_something_with_data(line):
# Do your magic here
...
return result
def main():
for line in INPUT:
print 'Result:', do_something_with_data(line)
if __name__ == '__main__':
main()
在迭代解释器中,您可以使用subprocess模块模拟sys.stdin。
In[0]: from test.py import *
In[1]: INPUT = subprocess.Popen(['grep', 'ABC', 'input.txt'], \
stdout=subprocess.PIPE).stdout
In[2]: main()
您也可以将输出导入到文件中,然后从文件中读取。就实际目的而言,stdin只是另一个文件。
In[0]: ! grep "ABC" input.txt > output.txt
In[1]: INPUT = open('output.txt')
In[2]: main()