python的py檔案 如何在window和linux系統中 使用命令的方式執行 接收json引數 兩者的格式是不一樣的

苹果芒發表於2024-08-30

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}'

希望能夠對你有所幫助!!!

相關文章