使用Python编写一个粘贴python源代码就能运行的工具

 更新时间:2025年04月15日 09:39:50   作者:winfredzhang  
以下是一个使用wxPython模块创建带有Memo(文本输入框)和保存按钮的GUI程序示例,点击保存按钮后将Memo内容保存到指定路径下的文件,并提供运行按钮以执行指定的Python脚本,需要的朋友可以参考下

源代码

import wx
import os
import subprocess

class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title="Memo Save and Run", size=(500, 400))
        panel = wx.Panel(self)
        
        # 创建布局
        vbox = wx.BoxSizer(wx.VERTICAL)
        
        # 创建Memo(多行文本框)
        self.memo = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(480, 200))
        vbox.Add(self.memo, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)
        
        # 保存按钮
        save_btn = wx.Button(panel, label="保存")
        save_btn.Bind(wx.EVT_BUTTON, self.on_save)
        vbox.Add(save_btn, flag=wx.ALIGN_CENTER | wx.ALL, border=5)
        
        # 运行按钮
        run_btn = wx.Button(panel, label="运行")
        run_btn.Bind(wx.EVT_BUTTON, self.on_run)
        vbox.Add(run_btn, flag=wx.ALIGN_CENTER | wx.ALL, border=5)
        
        panel.SetSizer(vbox)
        
        # 保存路径
        self.save_path = "output.py"  # 指定保存路径
        
    def on_save(self, event):
        # 获取Memo内容并保存到文件
        content = self.memo.GetValue()
        try:
            with open(self.save_path, 'w', encoding='utf-8') as f:
                f.write(content)
            wx.MessageBox(f"文件已保存到 {self.save_path}", "成功")
        except Exception as e:
            wx.MessageBox(f"保存失败: {str(e)}", "错误")
    
    def on_run(self, event):
        # 使用python命令运行保存的py文件
        if os.path.exists(self.save_path):
            try:
                result = subprocess.run(['python', self.save_path], capture_output=True, text=True)
                output = result.stdout + result.stderr
                wx.MessageBox(f"运行结果:\n{output}", "运行输出")
            except Exception as e:
                wx.MessageBox(f"运行失败: {str(e)}", "错误")
        else:
            wx.MessageBox("文件不存在,请先保存!", "错误")

if __name__ == "__main__":
    app = wx.App()
    frame = MyFrame()
    frame.Show()
    app.MainLoop()

功能说明:

  1. 界面

    • 包含一个多行文本框(Memo),用于输入Python代码。
    • 包含“保存”按钮,用于将Memo内容保存到指定路径(output.py)。
    • 包含“运行”按钮,用于执行保存的Python脚本。
  2. 保存功能

    • 点击“保存”按钮,Memo中的内容会保存到self.save_path指定的文件(默认为output.py)。
    • 保存成功或失败会弹出提示框。
  3. 运行功能

    • 点击“运行”按钮,使用subprocess.run调用python命令运行保存的output.py文件。
    • 运行结果(标准输出和错误输出)会显示在弹出的消息框中。
    • 如果文件不存在或运行失败,会显示错误提示。

使用方法:

  1. 运行上述代码,出现GUI窗口。
  2. 在Memo中输入Python代码,例如:
print("Hello, wxPython!")
  1. 点击“保存”按钮,内容会保存到output.py
  2. 点击“运行”按钮,程序会执行output.py并显示输出(如Hello, wxPython!)。

注意事项:

  • 确保系统已安装Python并配置好环境变量,以便subprocess可以调用python命令。
  • 保存路径output.py可根据需要修改为其他路径(如self.save_path = "C:/path/to/your/file.py")。
  • 运行的脚本需要是合法的Python代码,否则会显示错误信息。
  • 文件保存和运行时使用了utf-8编码,确保输入内容兼容。

运行结果

到此这篇关于使用Python编写一个粘贴python源代码就能运行的工具的文章就介绍到这了,更多相关Python源代码运行工具内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python实现数组平移K位问题

    python实现数组平移K位问题

    这篇文章主要介绍了python实现数组平移K位问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • Python+OpenCV实现信用卡数字识别的方法详解

    Python+OpenCV实现信用卡数字识别的方法详解

    这篇文章主要介绍了如何利用python opencv实现信用卡数字识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • Python读csv文件去掉一列后再写入新的文件实例

    Python读csv文件去掉一列后再写入新的文件实例

    下面小编就为大家分享一篇Python读csv文件去掉一列后再写入新的文件实例,具有很的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Python使用迭代器打印螺旋矩阵的思路及代码示例

    Python使用迭代器打印螺旋矩阵的思路及代码示例

    用Python的itertools模块来创建具有迭代功能的函数十分具有技巧性,这里我们就来看一下借助itertools模块、Python使用迭代器打印螺旋矩阵的思路及代码示例
    2016-07-07
  • Python实现APP自动化发微信群消息的示例代码

    Python实现APP自动化发微信群消息的示例代码

    本文主要介绍了Python实现APP自动化发微信群消息的示例代,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下码
    2022-01-01
  • Python中的numpy数组维度扩展详解

    Python中的numpy数组维度扩展详解

    这篇文章主要介绍了Python中的numpy数组维度扩展详解,在numpy数组中,切片功能非常常用,例如x[:]表示取x的所有元素,可以通过在切片中增加None或者np.newaxis实现,它们的作用就是在相应的位置上增加一个维度,在这个维度上只有一个元素,需要的朋友可以参考下
    2023-09-09
  • Python可视化神器pyecharts绘制水球图

    Python可视化神器pyecharts绘制水球图

    这篇文章主要介绍了Python可视化神器pyecharts绘制水球图,水球图首先是动态的效果,像水流一样波动,所以看起来比较的舒服,一般用于业务里面的完成率,其实和之前的仪表盘有点类似
    2022-07-07
  • python用pyinstaller封装exe双击后疯狂闪退解决办法

    python用pyinstaller封装exe双击后疯狂闪退解决办法

    本文主要介绍了python用pyinstaller封装exe双击后疯狂闪退解决办法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Python基于PycURL实现POST的方法

    Python基于PycURL实现POST的方法

    这篇文章主要介绍了Python基于PycURL实现POST的方法,涉及Python实现curl传递post数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python字符串格式化%s%d%f详解

    Python字符串格式化%s%d%f详解

    这篇文章主要介绍了Python字符串格式化%s%d%f详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论