如何更改下面的代码以提示用户输入列号和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))
答案 0 :(得分: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
为您提供了一个命令行参数列表,其中index 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,使处理命令行界面更加灵活和强大。