python - 操作系统调用给予权限被拒绝

标签 python bash user-interface tkinter

嘿,我正在尝试制作一个基于 GUI 的应用程序,可用于枚举 pcap 文件,所需的功能只是当用户单击枚举时,会出现另一个窗口,用户可以输入应该运行的文件名.

只是为了测试,我目前正在原始 bash 命令中获取输入,但不幸的是这对我不起作用。

下面是我的代码:-

from tkinter import *
import tkinter
import subprocess
window = tkinter.Tk()
window.minsize(300,300)
#back = tkinter.Tk()
window.title("Extractor")
e1 = Entry(window)

def disp():
        subprocess.call([e1.get()])
def callback():
        Label(window,text="Command").grid(row=0)
        e1 = Entry(window)
        e1.insert(10,"Please input")
        e1.grid(row=0,column=1)
        process = tkinter.Button(window,text="GO",command=disp)
        process.grid(row=10,column=5)

toplabel=tkinter.Label(window,text="Enumeration tool for PCAP")


enum = tkinter.Button(window,text ="Enumerate",command=callback)
enum.grid(row=10)
window.mainloop()

生成的错误:-

Exception in Tkinter callback
Traceback (most recent call last):
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1544, in __call__
    return self.func(*args)
  File "GUI.py", line 11, in disp
    subprocess.call([e1.get()])
  File "/usr/lib/python2.7/subprocess.py", line 172, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/usr/lib/python2.7/subprocess.py", line 394, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1047, in _execute_child
    raise child_exception
OSError: [Errno 13] Permission denied

我需要帮助在另一个窗口框架中调用另一个窗口,那么我该如何放置一些命令,例如 bash <input>这样 bash 始终隐藏,只有输入执行脚本以及如何修复该错误。

最佳答案

您的代码只需进行很少的更改即可工作:

...

window.title("Extractor")
e1 = None # <- your were creating two instances of your entry, one in 
          # global namespace and other local to the functions. Why?

def disp():
        subprocess.call([e1.get()]) # no need for for global, its a read op
def callback():
        global e1 # refer to global e1 on writes
        Label(window,text="Command").grid(row=0)
        e1 = Entry(window)

...

除了 Tk() 根窗口之外,您还可以创建其他窗口,调用 tkinter.Toplevel(root) 实例化一个新的根子窗口。

关于python - 操作系统调用给予权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50564750/

相关文章:

python - 如何在crawlspider中调试规则?

python - 将 Qt 样式表与 QMenu::indicator 一起使用

linux - 删除列表中的大写/小写重复项

bash - 简化 bash 脚本?

java - 组布局 : Is it worth learning?

python - 在多索引数据帧上使用 groupby/apply 时索引级别加倍

python - Python 中的实时 FFT 绘图 (MatPlotLib)

linux-mint 非交互式 shell 启动文件

iphone - Xcode4调试

java - 当我与自定义 SWT 组件交互时它会闪烁