• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 网神之王 | 发布时间: 2025-6-17 08:07| 查看数: 237| 评论数: 0|帖子模式

    源代码
    1. import wx
    2. import os
    3. import subprocess

    4. class MyFrame(wx.Frame):
    5.     def __init__(self):
    6.         super().__init__(parent=None, title="Memo Save and Run", size=(500, 400))
    7.         panel = wx.Panel(self)
    8.         
    9.         # 创建布局
    10.         vbox = wx.BoxSizer(wx.VERTICAL)
    11.         
    12.         # 创建Memo(多行文本框)
    13.         self.memo = wx.TextCtrl(panel, style=wx.TE_MULTILINE, size=(480, 200))
    14.         vbox.Add(self.memo, proportion=1, flag=wx.EXPAND | wx.ALL, border=10)
    15.         
    16.         # 保存按钮
    17.         save_btn = wx.Button(panel, label="保存")
    18.         save_btn.Bind(wx.EVT_BUTTON, self.on_save)
    19.         vbox.Add(save_btn, flag=wx.ALIGN_CENTER | wx.ALL, border=5)
    20.         
    21.         # 运行按钮
    22.         run_btn = wx.Button(panel, label="运行")
    23.         run_btn.Bind(wx.EVT_BUTTON, self.on_run)
    24.         vbox.Add(run_btn, flag=wx.ALIGN_CENTER | wx.ALL, border=5)
    25.         
    26.         panel.SetSizer(vbox)
    27.         
    28.         # 保存路径
    29.         self.save_path = "output.py"  # 指定保存路径
    30.         
    31.     def on_save(self, event):
    32.         # 获取Memo内容并保存到文件
    33.         content = self.memo.GetValue()
    34.         try:
    35.             with open(self.save_path, 'w', encoding='utf-8') as f:
    36.                 f.write(content)
    37.             wx.MessageBox(f"文件已保存到 {self.save_path}", "成功")
    38.         except Exception as e:
    39.             wx.MessageBox(f"保存失败: {str(e)}", "错误")
    40.    
    41.     def on_run(self, event):
    42.         # 使用python命令运行保存的py文件
    43.         if os.path.exists(self.save_path):
    44.             try:
    45.                 result = subprocess.run(['python', self.save_path], capture_output=True, text=True)
    46.                 output = result.stdout + result.stderr
    47.                 wx.MessageBox(f"运行结果:\n{output}", "运行输出")
    48.             except Exception as e:
    49.                 wx.MessageBox(f"运行失败: {str(e)}", "错误")
    50.         else:
    51.             wx.MessageBox("文件不存在,请先保存!", "错误")

    52. if __name__ == "__main__":
    53.     app = wx.App()
    54.     frame = MyFrame()
    55.     frame.Show()
    56.     app.MainLoop()
    复制代码
    功能说明:


    • 界面

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

    • 保存功能

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

    • 运行功能

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


    使用方法:


    • 运行上述代码,出现GUI窗口。
    • 在Memo中输入Python代码,例如:
    1. print("Hello, wxPython!")
    复制代码

    • 点击“保存”按钮,内容会保存到
      1. output.py
      复制代码

    • 点击“运行”按钮,程序会执行
      1. output.py
      复制代码
      并显示输出(如
      1. Hello, wxPython!
      复制代码
      )。

    注意事项:


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

    运行结果


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

    来源:https://www.jb51.net/python/339618gma.htm
    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表