如何在Python中分割输入参数

时间:2019-12-06 22:41:42

标签: python python-2.7

我有下面的代码,期望1个或多个文件名作为参数。

它适用于一个文件,但是现在输入参数可以是多个文件,例如1.json 2.json 3.json

我该如何处理?

import sys
import os
import json

inFile = sys.argv[1]


print(inFile)

with open(inFile, 'r') as file:
    try:
        json_data = json.load(file)
    except ValueError as e:
        print "Invalid Json supplied:%s" % e
        exit(1)
    else:
        print "json file ok"
        print(json_data)

1 个答案:

答案 0 :(得分:1)

由于argv是一个列表(为您完成了传递的arg字符串的解析),因此可以对其进行迭代,而跳过程序文件名的argv[0]

import json
import sys

for arg in sys.argv[1:]:
    with open(arg, "r") as file:
        try:
            json_data = json.load(file)
            print "json file ok"
            print json_data
        except ValueError as e:
            print "Invalid JSON supplied: %s" % e
            exit(1)

您可能希望将此数据放入列表中,以便可以在程序中对其进行处理:

import json
import sys

data = []

for arg in sys.argv[1:]:
    with open(arg, "r") as file:
        try:
            data.append(json.load(file))                
        except ValueError as e:
            print "Invalid JSON supplied: %s" % e
            exit(1)