【发布时间】:2021-01-08 21:36:49
【问题描述】:
我想从 tkinter 运行 linux 终端命令。所以无论我在 tkinter "Entry" 小部件中输入什么 linux 命令并按下按钮以在终端中运行。
如果你看到代码:
from tkinter import *
import subprocess
root = Tk()
entry1 = Entry(root)
entry1.grid(row=0, column=0)
def print_entry1():
subprocess.run(entry1.get())
Button(root, text="entry1", command=print_entry1).grid(row=1, column=1)
root.mainloop()
您会发现它适用于“单字”命令,例如 pwd、whoami、ls。 但是,如果您在键入过程中添加空格和一些标志/参数,则会出现错误……例如,它无法理解 ls -l 命令。 一旦在键入过程中引入空格,就会出现错误...
你能建议... 非常感谢。
【问题讨论】:
-
subrocess.run需要一个 list 参数。如果你传入一个字符串(看起来像你),你需要(a)自己拆分命令,可能使用shlex.split,或者(b)在调用subprocess.run时设置shell=True。
标签: linux tkinter subprocess