我想以参数作为列表运行Python脚本。该脚本需要获取该参数并将其转换为列表。参数中的列表元素可以由df['Value'] = df['Value'].apply(pd.to_numeric, errors='coerce')
df.groupby(['Month', 'Day', 'Hour']).agg({'Value': np.mean})
或commas
或spaces
分隔,如下所示:
comma+space
为了适应第一个选项,我执行以下操作,它似乎有效:
python test.py 1,2,3,4
python test.py 1 2 3 4
python test.py 1, 2, 3, 4
如何修改此脚本以容纳其他两个选项?
答案 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:]]