Pythonスクリプトを実行するにはシェルコマンドを使用する必要があります
しかし、argsはpythonスクリプトのリストです:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
import sys
def main(task_list):
print('task_list:',task_list)
if __name__=='__main__':
main(sys.argv[1])
シェルPythonを使用するとき
python scrpit.py [("store", "IDCODE", 18116485, 88779)]
システムショー:「( 'エラーがあります」
リストをスクリプトに変換するにはどうすればよいですか?
( "store"、 "IDCODE"、18116485、88779)は引数です
シェルはプログラムに文字列の配列を渡し、Pythonはその文字列のリストに変換します。シェルはPython構文を認識していません。あなたはあなたのプログラムを次のように呼ぶことができます
$ python scrpit.py '[("store", "IDCODE", 18116485, 88779)]'
次に、を使用ast.literal_eval
してそれをリストに解析します。
import sys
import ast
if len(sys.argv) == 2:
data = ast.literal_eval(sys.argv[1])
print(data)
出力
[('store', 'IDCODE', 18116485, 88779)]
ただし、引数を個別の文字列として受け取る方が堅牢です。
import sys
if len(sys.argv) == 5:
name, code, num1, num2 = sys.argv[1:]
num1, num2 = int(num1), int(num2)
data = [name, code, num1, num2]
print(data)
次のように呼びます
$ python scrpit.py "store" "IDCODE" 18116485 88779
そして出力は
['store', 'IDCODE', 18116485, 88779]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加