如何使用以逗号和空格分隔的列表作为参数运行Python脚本?

时间:2018-03-13 18:20:32

标签: python python-2.7

我想以参数作为列表运行Python脚本。该脚本需要获取该参数并将其转换为列表。参数中的列表元素可以由df['Value'] = df['Value'].apply(pd.to_numeric, errors='coerce') df.groupby(['Month', 'Day', 'Hour']).agg({'Value': np.mean}) commasspaces分隔,如下所示:

comma+space

为了适应第一个选项,我执行以下操作,它似乎有效:

python test.py 1,2,3,4
python test.py 1 2 3 4
python test.py 1, 2, 3, 4

如何修改此脚本以容纳其他两个选项?

2 个答案:

答案 0 :(得分:3)

循环sys.argv[1:],将每个部分拆分为,,收集为int

import sys

l = []
for a in sys.argv[1:]:
    for part in a.split(","):
        if part.strip():
            l.append(int(part.strip()))
print(l)

输出

[1, 2, 3, 4]

所有输入。

答案 1 :(得分:2)

就个人而言,我需要一个输入格式才能获得良好的衡量标准。

按照目前的情况,你别无选择,只能以不同的方式处理每个案件,或至少处理每组案件。通过您迄今为止所做的工作,您似乎可以胜任这项任务。要处理具有多个参数的两个案例,最简单的方法是删除任何可能存在或可能不存在的逗号:

args = [arg.strip(',') for arg in sys.argv[1:]]