源代码
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()
功能说明:
界面:
- 包含一个多行文本框(memo),用于输入python代码。
- 包含“保存”按钮,用于将memo内容保存到指定路径(
output.py
)。 - 包含“运行”按钮,用于执行保存的python脚本。
保存功能:
- 点击“保存”按钮,memo中的内容会保存到
self.save_path
指定的文件(默认为output.py
)。 - 保存成功或失败会弹出提示框。
- 点击“保存”按钮,memo中的内容会保存到
运行功能:
- 点击“运行”按钮,使用
subprocess.run
调用python
命令运行保存的output.py
文件。 - 运行结果(标准输出和错误输出)会显示在弹出的消息框中。
- 如果文件不存在或运行失败,会显示错误提示。
- 点击“运行”按钮,使用
使用方法:
- 运行上述代码,出现gui窗口。
- 在memo中输入python代码,例如:
print("hello, wxpython!")
- 点击“保存”按钮,内容会保存到
output.py
。 - 点击“运行”按钮,程序会执行
output.py
并显示输出(如hello, wxpython!
)。
注意事项:
- 确保系统已安装python并配置好环境变量,以便
subprocess
可以调用python
命令。 - 保存路径
output.py
可根据需要修改为其他路径(如self.save_path = "c:/path/to/your/file.py"
)。 - 运行的脚本需要是合法的python代码,否则会显示错误信息。
- 文件保存和运行时使用了
utf-8
编码,确保输入内容兼容。
运行结果
到此这篇关于使用python编写一个粘贴python源代码就能运行的工具的文章就介绍到这了,更多相关python源代码运行工具内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论