Spotify Tech Puzzle - Python中的stdin

时间:2012-02-05 18:15:15

标签: windows-xp stdin python-2.7 spotify

我正在努力解决Spotify的技术难题中的双边问题。 http://www.spotify.com/us/jobs/tech/bilateral-projects/我的计算机上有一些工作,它从文件input.txt读取输入,然后输出到ouput.txt。我的问题是,当我提交代码必须从stdin读取时,我无法弄清楚如何使我的代码工作。我看了几篇其他帖子,但我没有看到任何对我有意义的内容。我看到有些人只是使用raw_input - 但这会产生用户提示?不知道该怎么办。这是我的代码的protion,用于读取输入,并写入输出。有关如何更改的建议吗?另外,如果将代码更改为从stdin读取,我将如何测试代码?如何将测试数据放入stdin?我从spotify回来的错误说运行时错误 - NameError。

import sys

# Read input
Input = []
for line in sys.stdin.readlines():
    if len(line) <9:
        teamCount = int(line)
    if len(line) > 8:
        subList = []
        a = line[0:4]
        b = line[5:9]
        subList.append(a)
        subList.append(b)
        Input.append(subList)

##### algorithm here

#write output
print listLength
for empWin in win:
    print empWin

1 个答案:

答案 0 :(得分:0)

你其实没事。

for line in sys.stdin.readlines():

将从stdin读取行。然而,它可以缩短为:

for line in sys.stdin:

我不使用Windows,但是要从命令行测试您的解决方案,您应该像这样运行它:

python bilateral.py < input.txt > output.txt

如果我像上面那样运行你的代码,我会看到错误消息

Traceback (most recent call last):
  File "bilateral.py", line 20, in <module>
    print listLength
NameError: name 'listLength' is not defined

偶然(因为我猜你没有发送)是Spotify拼图检查器发现的错误。你可能只是拼错了一个变量。