[英]Python subprocess assign value to a variable
我正在使用以下代碼:
import subprocess
#subprocess.call(["cat","contents.txt"])
command = "VAR=$(cat contents.txt | grep token)"
subprocess.call(command, shell = True)
subprocess.call(["echo","$VAR"])
我正在嘗試將 contents.txt 中存在的令牌值分配給一個變量,並且我正在嘗試打印該變量。 但我沒有得到任何東西。 這里可以做哪些修正。
謝謝
您必須在一個進程中完成所有操作,因為os.environ
用於特定的 python 進程,而subprocess
進程在另一個進程中執行您的命令,因此您無法從那里訪問它。
您也不能在兩個不同的subprocess.call
調用中執行此操作,因為每個調用都是另一個進程,您無法從第二個進程訪問變量,因此您必須在同一進程中執行所有內容,所有命令都在同一行,分開用“;”,如下:
import subprocess
result = subprocess.run('VAR=$(cat contents.txt | grep token); echo $VAR', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
print(result.stdout.decode())
在我的contents.txt
文件中,我有“token=123”,因此result.stdout.decode()
的結果也是“token=123”:D
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.