2013-12-10 92 views
-2

如何更改下面的代碼以提示用戶輸入列號和csv文件名而不是在代碼中聲明它?提示用戶選擇文件名

#!/bin/env python 

col = 2 

values = [] 
with open('test.csv', 'r') as csv: 
for line in csv.readlines(): 
    elements = line.strip().split(',') 
    values.append(int(elements[col])) 

csum = sum(values) 
cavg = sum(values)/len(values) 
print("Sum of column %d: %f" % (col, csum)) 
print("Avg of column %d: %f" % (col, cavg)) 

回答

1

您可以使用input() function

filename = input('Please enter a filename: ') 
col = int(input('Please pick a column number: ')) 
with open(filename, 'r') as csv: 

,或者你可以接受命令行參數; sys.argv給你的命令行參數,其中指數0是腳本的名稱列表,任何超出的值用戶把命令行:

import sys 

if len(sys.argv) < 3: 
    print('Please specify a filename and column number: {} [csvfile] [col]'.format(sys.argv[0])) 
    sys.exit(1) 

filename = sys.argv[1] 
col = int(sys.argv[2]) 

Python標準庫包括argparse module作出處理命令行界面更加靈活和強大。

相關問題