开发者

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

开发者 https://www.devze.com 2025-04-16 09:24 出处:网络 作者: winfredzhang
目录源代码功能说明:使用方法:注意事项:运行结果源代码 import wx import os import subprocess
目录
  • 源代码
  • 功能说明:
  • 使用方法:
  • 注意事项:
  • 运行结果

源代码

import wx
import os
import subprocess

class MyFrame(wx.Frame):
    def __init__(self):
        super().__init__(parent=None, title="使用python编写一个粘贴pyth编程on源代码就能运行的工具", 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.me编程客栈mo, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)
        
        # 保存按钮
        save_btn = wx.Button(panel, label="保存")
        save_btvIzzMvqn.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(wphpx.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源代码就能运行的工具的文章就介绍到这了,更多相关Python源代码运行工具内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号