2012-02-05 37 views
0

我正試圖解決Spotify的技術謎題上的雙邊問題。 http://www.spotify.com/us/jobs/tech/bilateral-projects/我有一些工作在我的電腦上,它從文件input.txt讀取輸入,並輸出到ouput.txt。我的問題是,我不知道如何讓我的代碼在我從stdin中讀取的地方提交時工作。我看過其他幾篇文章,但沒有看到任何對我有意義的東西。我看到一些人只是使用raw_input - 但這會產生一個用戶提示?不知道該怎麼辦。這裏是我的代碼的protion,它用於讀取輸入,並寫入輸出。關於這可能需要改變的任何建議?另外,如果將代碼更改爲從stdin讀取,我將如何測試代碼?我如何將測試數據放入標準輸入中?我從Spotify獲得的錯誤說運行時錯誤 - NameError。Spotify Tech Puzzle - Python中的stdin

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 

回答

0

你確實沒問題。

for line in sys.stdin.readlines(): 

將從標準輸入讀取行。然而,可以簡化爲:

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拼圖檢查器發現的錯誤。你可能只是拼錯了某個地方的變量。

+0

好的感謝您的幫助。我很難弄清楚如何做到這一點!我不想發佈我的完整解決方案,所以我忽略了我的變量被定義的地方 - 哎呀 – John 2012-02-06 23:56:26