python的py文件 如何在window和linux系统中 使用命令的方式执行 接收json参数 两者的格式是不一样的

1.在Python中,可以使用内置的sys模块来在Windows和Linux系统中接收命令行参数。

使用sys.argv,它是一个列表,包含命令行参数。sys.argv[0]是脚本名,其余元素是命令行参数

示例代码:

import sys
 
# 检查参数个数
if len(sys.argv) < 2:
    print("请提供至少一个参数。")
    sys.exit(1)
 
# 获取第一个参数
first_param = sys.argv[1]
 
# 打印第一个参数
print("第一个参数是:", first_param)

在Windows和Linux系统的命令行中运行这个Python脚本时,可以这样传递参数

python script.py 参数1

这是接受普通 数字型 或者 字符型 参数的格式。

2.如何接受一个json格式的参数

import sys
import json
 
# 检查命令行参数
if len(sys.argv) > 1:
    # 假设第一个参数是JSON字符串
    json_str = sys.argv[1]
    # 解析JSON字符串
    try:
        params = json.loads(json_str)
        print(params)
    except json.JSONDecodeError:
        print("无效的JSON字符串")
else:
    print("缺少JSON参数")

但是如果传入的参数是一个json,那么在Windows和Linux系统的命令行中运行这个Python脚本时,传参格式是不一样的。

2.1 在Windows命令行中,你可以使用以下命令来调用脚本并传递JSON参数:

#window命令行传入json参数,需要全部使用 双引号的方式
python your_script.py "{\"key1\": \"value1\", \"key2\": \"value2\"}"

2.2 在Linux命令行中,你可以使用以下命令来调用脚本并传递JSON参数:

#linux命令行传入json参数,外部使用单引号,内部使用 双引号的方式
python my_script.py '{"name": "John", "age": 30}'

 

注意:

如果是python的pytest执行,命令行执行时一定要写:

python -m pytest -s Testuse_test.py::ClassName:tc_Name

如果直接写pytest Testuse_test.py::ClassName:tc_Name 很大概率上会提示找不到一些model.

希望能够对你有所帮助!!!

posted @ 2024-08-30 22:23  苹果芒  阅读(14)  评论(0编辑  收藏  举报