有时候想要测试一些程序,又不想打开编辑器,于是在网上找了在线的python编辑器,发现只能运行一些简单的代码。
了解了一下原理,主要是把写的代码上传到服务器固定的文件里面,然后让服务器的python编辑器运行代码,最后将结果返回。
明白了原理后,我根据这个思路试了一下,确实可以做到,对了输出结果,错误可以看到错误的信息,在本地用tkinter试了一下,网页端也是同样的原理。
测试视频:
源代码:
from tkinter import *
import subprocess
window = Tk()
window.title('模拟python编辑器')
t1 = Text(width=50)
t1.pack(side='left')
def run_main():
# 获取输入的代码
code = t1.get(1.0,'end')
with open('main.py',"w") as f:
f.write(code)
# 运行代码,并获取输出的运行结果
p = subprocess.Popen('python main.py', stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
r = p.stdout.read()
# 将输出运行结果显示出来
t2.delete(1.0,'end')
t2.insert(1.0,r.decode('utf-8'))
button = Button(text = '运行代码',command = run_main)
button.pack(side='left')
t2 = Text(width=50)
t2.pack(side='left')
window.mainloop()
(全文完)