如何检查服务器端python标准输入中的EOF

时间:2016-01-26 03:02:58

标签: python stdin eof

所以我试图让HackerRank服务器为我检查代码。我建立了一个名字及其各自的电话号码字典。 HackerRank服务器使用stdin通过在连续行上输入名称来查询其数字的名称,直到名称用完为止。

我知道在shell中使用Ctrl + D(Unix)或Ctrl + Z(Windows)来表示EOF,但我不知道如何设置我的代码以便程序停止尝试读取来自stdin - 当服务器停止输入查询时 - 并打印电话号码。这是我对解决方案的最佳猜测:

N=input()               #number of phonebook entries
D={}
for i in range(N):      #build phonebook as dictionary using stdin
    name=raw_input()
    number=raw_input()
    D[name]=number


for i in range(10000):  #queries are then entered with a max number of 10^4
    try:
        line=raw_input()
        if line in D.keys():
            print line + "=" + D[line]     #print name=phonenumber
        else:
            print "Not found"

    except EOFError:     #break out of loop if EOF is reached
        break 

这似乎没有这样做,我想知道是不是因为我没有正确地进行EOF阅读,或者如果它是原始问题的一些特点,我可能无法正确解释。

1 个答案:

答案 0 :(得分:0)

当您到达文件结尾时,line将为空字符串''