簡體   English   中英

Python子進程為變量賦值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM