python - 如何在 Python 中分割输入参数

标签 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)

最佳答案

由于 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)

关于python - 如何在 Python 中分割输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59221228/

相关文章:

python - 是否可以在 Python 中重新定义关键字?

Python:虚拟MIDI设备

python - 测试输入是否为格式正确的数字的最 pythonic 方法是什么

python - 无法从 python aws lambda 函数中运行二进制文件

Python 大于或小于

python - 在 HTML 中同时查找多个 "Text"选项

python模块变量混淆

python - 更改函数内装饰器的参数

python - 单击“确定”后 Tkinter TkMessageBox 未关闭

python-2.7 - Flask-Restful 支持的 API 返回 404 错误