我自己在谷歌上搜索如何做到这一点并弄清楚了。对于我的情况,我从hackerrank.com 获取一些示例输入并将其放入一个文件中,然后希望能够将所述文件用作我的stdin
,以便我可以编写一个可以轻松复制/粘贴到他们的IDE 中的解决方案。我使我的 2 个 python 文件可执行,添加了 shebang。第一个读取我的文件并写入stdout
.
#!/Users/ryandines/.local/share/virtualenvs/PythonPractice-U9gvG0nO/bin/python
# my_input.py
import sys
def read_input():
lines = [line.rstrip('\n') for line in open('/Users/ryandines/Projects/PythonPractice/swfdump')]
for my_line in lines:
sys.stdout.write(my_line)
sys.stdout.write("\n")
read_input()
第二个文件是我为解决编程挑战而编写的代码。这是我的:
#!/Users/ryandines/.local/share/virtualenvs/PythonPractice-U9gvG0nO/bin/python
def zip_stuff():
n, x = map(int, input().split(' '))
sheet = []
for _ in range(x):
sheet.append( map(float, input().split(' ')) )
for i in zip(*sheet):
print( sum(i)/len(i) )
zip_stuff()
然后我使用操作系统的管道命令来提供 STDIN 的缓冲。工作方式与hackerrank.com 完全相同,因此我可以轻松剪切/粘贴示例输入以及相应的代码,而无需更改任何内容。像这样称呼它:./my_input.py | ./zip_stuff.py