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.
希望能够对你有所帮助!!!