【问题标题】:Run linux terminal commands from python GUI tkinter从 python GUI tkinter 运行 linux 终端命令
【发布时间】: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


【解决方案1】:

你必须import shlex然后替换

subprocess.run(entry1.get())

subprocess.run(shlex.split(entry1.get()))

这会将用户输入的字符串转换为列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 2018-06-19
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2019-08-04
    相关资源
    最近更新 更多