我有一個 perl 腳本,它以陣列作為引數呼叫 python 函式。python 函式需要遍歷陣列元素。我在下面嘗試過,但是 python 函式將陣列讀取為字串。
my @stmts = ("cd /tmp", "touch test.txt")
python.exe test.py @stmts
Python
def test(stmts)
print("Statements:" stmts)
我想在 python 中將 stmts 作為串列讀取。非常感謝您對此的任何幫助。謝謝你。
uj5u.com熱心網友回復:
引數只能是字串。你不能傳遞一個陣列。但是由于您有一個字串陣列,您可以將這些字串作為單獨的引數傳遞。
system("script.py", @stmts);
它們將在sys.argv[1:].
stmts = sys.argv[1:]
對于更復雜的結構,您需要以某種方式序列化和反序列化資料。JSON 是常見的選擇,但還有許多其他選擇。
uj5u.com熱心網友回復:
您不能從外部將陣列傳遞給 python。它將作為字串讀取。您可以在 Python 代碼中將字串轉換為陣列。
a = '["x","y","z"]'
print(a.replace("[",'').replace("]",'').replace('"','').split(','))
['x', 'y', 'z']
如果您有括號和引號作為字串的一部分,那么您將不得不替換它。如果你只有一個像 'x,y,z' 這樣的字串,你可以執行 spilt(',') 來獲取一個陣列。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/376620.html
