2012-06-28 69 views
0

這是變量定義的地方,現在它應該作爲參數a(目錄,文件名,分片大小),但是當我插入它時會給我「列表索引超出範圍」的錯誤,這段代碼中是否有錯?或者我錯誤地稱呼它?如何在使用sys.arg中設置3個參數的變量

if __name__=="__main__": 
    dirname = sys.argv[1] 
    filename = sys.argv[2] 
    slicesize = int(sys.argv[3]) 
    sort_big_text_file(dirname,filename,slicesize) 




sort_big_text_file('C:/Python/','dotcom_data.txt', 100000) 

回答

0

與我在做什麼的問題是,我是在調用函數時它在最後執行,那應該已經到來之前,去年的功能,我相信你會打電話主要的。所以,而不是我所做的,就像這樣:

sort_big_text_file('C:/Python/','com_data.txt', 100000) 

if __name__=="__main__": 
    dirname = sys.argv[1] 
    filename = sys.argv[2] 
    slicesize = int(sys.argv[3]) 
    sort_big_text_file(dirname,filename,slicesize) 
1

陣列通常在指數0開始您的意思是使用

if __name__=="__main__": 
    dirname = sys.argv[0] 
    filename = sys.argv[1] 
    slicesize = int(sys.argv[2]) 
    sort_big_text_file(dirname,filename,slicesize) 

你有3個參數?您可以檢查使用

if len(sys.argv) < 3: 
    sys.stderr.write('error: not enough arguments') 
+1

'argv'中的第一項是用於調用執行的腳本/程序的名稱。 – JAB

+0

我試圖從索引零開始,但我仍然得到相同的錯誤「列表不在索引範圍」,並且函數確實需要三個參數,我查看它並且一切看起來都很好,只是不確定爲什麼我會得到這個錯誤] – Ferdinand

+0

你有錯誤嗎? –

相關問題