国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python在線運行代碼助手

2019-11-25 16:38:23
字體:
來源:轉載
供稿:網友

Python代碼運行助手可以讓你在線輸入Python代碼,然后通過本機運行的一個Python腳本來執行代碼。原理如下:

在網頁輸入代碼:

點擊Run按鈕,代碼被發送到本機正在運行的Python代碼運行助手;

Python代碼運行助手將代碼保存為臨時文件,然后調用Python解釋器執行代碼;

網頁顯示代碼執行結果:

下載

點擊右鍵,目標另存為:learning.py

備用下載地址:learning.py

完整代碼:

#!/usr/bin/env python3# -*- coding: utf-8 -*-r'''learning.pyA Python 3 tutorial from http://www.liaoxuefeng.comUsage:python3 learning.py'''import sysdef check_version(): v = sys.version_info if v.major == 3 and v.minor >= 4:  return True print('Your current python is %d.%d. Please use Python 3.4.' % (v.major, v.minor)) return Falseif not check_version(): exit(1)import os, io, json, subprocess, tempfilefrom urllib import parsefrom wsgiref.simple_server import make_serverEXEC = sys.executablePORT = 39093HOST = 'local.liaoxuefeng.com:%d' % PORTTEMP = tempfile.mkdtemp(suffix='_py', prefix='learn_python_')INDEX = 0def main(): httpd = make_server('127.0.0.1', PORT, application) print('Ready for Python code on port %d...' % PORT) httpd.serve_forever()def get_name(): global INDEX INDEX = INDEX + 1 return 'test_%d' % INDEXdef write_py(name, code): fpath = os.path.join(TEMP, '%s.py' % name) with open(fpath, 'w', encoding='utf-8') as f:  f.write(code) print('Code wrote to: %s' % fpath) return fpathdef decode(s): try:  return s.decode('utf-8') except UnicodeDecodeError:  return s.decode('gbk')def application(environ, start_response): host = environ.get('HTTP_HOST') method = environ.get('REQUEST_METHOD') path = environ.get('PATH_INFO') if method == 'GET' and path == '/':  start_response('200 OK', [('Content-Type', 'text/html')])  return [b'<html><head><title>Learning Python</title></head><body><form method="post" action="/run"><textarea name="code" style="width:90%;height: 600px"></textarea><p><button type="submit">Run</button></p></form></body></html>'] if method == 'GET' and path == '/env':  start_response('200 OK', [('Content-Type', 'text/html')])  L = [b'<html><head><title>ENV</title></head><body>']  for k, v in environ.items():   p = '<p>%s = %s' % (k, str(v))   L.append(p.encode('utf-8'))  L.append(b'</html>')  return L if host != HOST or method != 'POST' or path != '/run' or not environ.get('CONTENT_TYPE', '').lower().startswith('application/x-www-form-urlencoded'):  start_response('400 Bad Request', [('Content-Type', 'application/json')])  return [b'{"error":"bad_request"}'] s = environ['wsgi.input'].read(int(environ['CONTENT_LENGTH'])) qs = parse.parse_qs(s.decode('utf-8')) if not 'code' in qs:  start_response('400 Bad Request', [('Content-Type', 'application/json')])  return [b'{"error":"invalid_params"}'] name = qs['name'][0] if 'name' in qs else get_name() code = qs['code'][0] headers = [('Content-Type', 'application/json')] origin = environ.get('HTTP_ORIGIN', '') if origin.find('.liaoxuefeng.com') == -1:  start_response('400 Bad Request', [('Content-Type', 'application/json')])  return [b'{"error":"invalid_origin"}'] headers.append(('Access-Control-Allow-Origin', origin)) start_response('200 OK', headers) r = dict() try:  fpath = write_py(name, code)  print('Execute: %s %s' % (EXEC, fpath))  r['output'] = decode(subprocess.check_output([EXEC, fpath], stderr=subprocess.STDOUT, timeout=5)) except subprocess.CalledProcessError as e:  r = dict(error='Exception', output=decode(e.output)) except subprocess.TimeoutExpired as e:  r = dict(error='Timeout', output='執行超時') except subprocess.CalledProcessError as e:  r = dict(error='Error', output='執行錯誤') print('Execute done.') return [json.dumps(r).encode('utf-8')]if __name__ == '__main__': main()

運行

在存放learning.py的目錄下運行命令:

復制代碼 代碼如下:

C:/Users/michael/Downloads> python learning.py

如果看到Ready for Python code on port 39093...表示運行成功,不要關閉命令行窗口,最小化放到后臺運行即可:

試試效果

需要支持HTML5的瀏覽器:

IE >= 9
Firefox
Chrome
Sarafi

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林周县| 横峰县| 武乡县| 大洼县| 东方市| 曲沃县| 南安市| 文成县| 淄博市| 靖宇县| 晋中市| 荔浦县| 海林市| 故城县| 德阳市| 鄂伦春自治旗| 安庆市| 岐山县| 卢湾区| 都江堰市| 临澧县| 茂名市| 星子县| 安吉县| 安丘市| 遵义县| 青河县| 绥中县| 扶绥县| 潼关县| 富平县| 建始县| 祥云县| 巴南区| 合山市| 大宁县| 安岳县| 光泽县| 尼木县| 财经| 大丰市|