我想使用参数,然后将其转换为包含值的变量:
我从CSV文件中获取了一些值,然后将其上传到Googles的工作表文档。
以下是我的代码[mycode.py
]的摘要:
f101 = open('/home/some_directory/101_Hrs.csv')
f102 = open('/home/some_directory/102_Hrs.csv')
f103 = open('/home/some_directory/103_Hrs.csv')
f112 = open('/home/some_directory/112_Hrs.csv')
csv_f101 = csv.reader(f101)
csv_f102 = csv.reader(f102)
csv_f103 = csv.reader(f103)
csv_f112 = csv.reader(f112)
我想使用终端中的参数(101,102,103或112)(例如mycode.py 101
),我可以使用[101
]与f
连接获取f101
以及open('/home/some_directory/[101]_Hrs.csv')
,其中[101
]是一个可以被终端中的参数替换的数字。
这是怎么做到的?
答案 0 :(得分:1)
在python程序中使用输入参数的几个简单教程:
基本想法是使用内置的sys
模块,该模块允许您通过argv
访问输入。
import sys
nInputs = len(sys.argv)
print 'Number of arguments = ', nInputs
print 'Inputs = ', str(sys.argv)
if (nInputs >= 2):
strFilename = '/home/some_directory/' + sys.argv[1] + '_Hrs.csv'
print 'Filename = ', strFilename
然后当你跑:
>> python mycode.py 101
Number of arguments = 2
Inputs = ['mycode.py', '101']
Filename = /home/some_directory/101_Hrs.csv
答案 1 :(得分:0)
结帐argparse
,其功能超过sys.argv
。您不一定需要所有这些都符合您当前的要求,但它更灵活,可以避免一些重新发明:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('arguments', nargs='+')
args = parser.parse_args()
print('number of supplied arguments:{}'.format(len(args.arguments)))
for argument in args.arguments:
print('supplied argument:{}'.format(argument))
它还有一个由频繁的Stack Overflow撰稿人编写的优秀教程:https://docs.python.org/2/howto/argparse.html