如何在Python中读取和检查stdin/stdout?
我们有一个很好的答案,讲的是如何从标准输入(stdin)读取数据。
- 但是我不明白怎么运行Python代码,让它从一个文件里读取数据,就像从标准输入那样?
- 那这个
print
是不是就像标准输出(stdout)一样?
我问这个是因为我在Facebook的一个演示谜题中看到过这样的说明:
注意:你需要写完整的代码,所有输入都来自标准输入,输出到标准输出。如果你使用的是“Java”,类名是“Solution”。
2 个回答
2
如果你想运行代码,让它从标准输入(stdin)读取一个文件,而不是从交互式终端输入,那么你需要使用重定向。
python program.py <input_file.txt
这里的<
符号表示在运行脚本时,指定的文件会被连接到标准输入。这种写法在Windows、MacOS和类Unix系统上都是一样的。
6
当你从 stdin
读取数据时,有三种基本的方法:
手动输入内容:
$ python hello.py asfasfasf asfasfasfasfasf <TYPE CONTROL-D TO END STREAM>
使用
<
符号:$ python hello.py < inputfile.txt
使用之前命令的输出:
$ cat inputfile.txt | grep oranges | python hello.py
这三种方法都可以通过 stdin
获取输入。
在你修改问题后,你问的就不再是原来的问题了。以下是对你新问题的回答:
- 你可以用
sys.stdin = open('inputfile.txt')
让输入文件看起来像是从 stdin 读取的。确保这是你想要的。从你的作业提示来看,似乎我上面的解决方案正是你需要的。 print
是用来输出到 stdout 的。