提示用户选择文件名

时间:2013-12-10 16:52:23

标签: python csv

如何更改下面的代码以提示用户输入列号和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 个答案:

答案 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,使处理命令行界面更加灵活和强大。