当前位置: 代码网 > it编程>前端脚本>Python > 使用Python编写一个粘贴python源代码就能运行的工具

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

2025年04月15日 Python 我要评论
源代码import wximport osimport subprocessclass myframe(wx.frame): def __init__(self): super()

源代码

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源代码运行工具内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com