我有以下代码,需要 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/