簡體   English   中英

通過 python 執行終端命令

[英]Execute terminal command over python

我正在嘗試獲取運行.py的主機名,所以我使用了:

server = subprocess.Popen(["hostname"])
print(server.stdout)

但是,我得到了這個回報:

None
HOSTNAME

它總是從subprocess.Popen()打印None ,然后在print(server.stdout)主機名。 有沒有辦法來解決這個問題?

到目前為止,我有三個解決方案:

  1. 使用 Popen 和 stdout.read:
import subprocess
server = subprocess.Popen(["hostname"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print(server.stdout.read().decode().rstrip("\n"))
  1. 使用 Popen 和通信
import subprocess
server = subprocess.Popen(["hostname"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = server.communicate()
print(out.decode().rstrip("\n"))
  1. 使用檢查輸出:
import subprocess
print(subprocess.check_output("hostname").decode().rstrip("\n"))

我想知道您是否可以直接獲取字符串,但它有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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