简 介: 测试与完成了基于编写的python小程序“ais”,可以直接直接将TEASOFT中的编辑的python程序通过Windows剪切板发送到AI Studio,自动运行。通过这种方式可以加快AI Studio 程序的开发和测试。
关键词
: AI,Studio,ais
§01 AI Studio
在 在AI Studio初步建立项目 —— 第一次尝试 初步测试了在AI Studio进行人工智能Python环境的建立。可以看到在Notebook环境下可以实现最方便的交互式程序开发。
▲ 图1.1 AI Studio 终端窗口开发环境
一、从TEASOFT到AI Studio
1、AI 终端操作
在AI Studio
终端操作,就如同在Linux
系统的远程终端对于服务器进行操作一样。可以使用:
vi
,edit
:命令完成源文件的编译;python
:命令执行Python
程序;
▲ 图1.1.1 AI Studio终端开发界面
2、终端运行程序
下面程序主要完成:
- 将
Windows TEASOFT
编写的Python
程序,拷贝Clipboard
; - 在
AI Studio
打开VI
编辑器,将Clipboard
中的程序粘贴到VI
中; - 存盘,并执行
Python
运行该程序;
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# AIS.PY -- by Dr. ZhuoQing 2021-12-07
#
# Note:
#============================================================
from head import *
import pyautogui
#------------------------------------------------------------
AIStudio_Title = 'BML CodeLab'
string = tspstring2text('aise')
if len(string) > 0: AIStudio_Title = string
filename = 'test.py'
saveonlyflag = 0
outfile = ""
#------------------------------------------------------------
tspcopyclipboard()
filelines = clipboard.paste().split('\r\n')
proclines = []
for l in filelines:
if l.find('from head import *') >= 0:
id = l.find('#>')
if id > 0:
outfile = l[id+1:]
l = ''
if l.find('from headm import *') >= 0:
id = l.find('#>')
if id > 0:
outfile = l[id+1:]
l = ''
l = l.replace('printf', 'print')
proclines.append(l)
filelines = '\n'.join(proclines)
#clipboard.copy(filelines)
#------------------------------------------------------------
editfile = tspgeteditfile()
editfile = os.path.basename(editfile).split('.')[0] + '.py'
#------------------------------------------------------------
for s in sys.argv[1:]:
if s[0] == '>':
saveonlyflag = 1
if len(s[1:]) > 0:
editfile = s[1:] + '.py'
elif s[0] == ':':
AIStudio_Title = s[1:]
#------------------------------------------------------------
rect = tspgetwindowrect(AIStudio_Title)
pyautogui.click((rect[0]+rect[2])//2, (rect[1]+rect[3])//2)
#------------------------------------------------------------
def pastefile(filename):
# tspsendwindowkey(AIStudio_Title, "rm %s\r"%filename, noreturn=1)
# tspsendwindowkey(AIStudio_Title, "vi %s\r"%filename, noreturn=1)
clipboard.copy('rm %s\nvi %s\n'%(filename, filename))
tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
clipboard.copy(filelines)
# time.sleep(.1)
tspsendwindowkey(AIStudio_Title, "i", noreturn=1)
tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "%c"%27, noreturn=1)
tspsendwindowkey(AIStudio_Title, ":wq\r", noreturn=1)
# tspsendwindowkey(AIStudio_Title, "\r", noreturn=1)
def runfile(filename):
# tspsendwindowkey(AIStudio_Title, "clear\r", noreturn=1)
# tspsendwindowkey(AIStudio_Title, "python %s %s\r"%(filename, outfile), noreturn=1)
clipboard.copy('clear\npython %s %s\n'%(filename, outfile))
tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
#------------------------------------------------------------
pastefile(editfile)
if saveonlyflag == 0:
# time.sleep(.1)
runfile(editfile)
#------------------------------------------------------------
printf('\a')
tspfocuswindow("TEASOFT:1")
#------------------------------------------------------------
# END OF FILE : AIS.PY
#============================================================
上面程序还需要对原始程序进行如下处理:
- 将原来程序中
printf
更换成print
- 将 原有的
from head import
一行去除;
3、测试程序
(1)测试程序
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2021-12-07
#
# Note:
#============================================================
from headm import *
import time, math, clipboard, random
from numpy import *
for i in range(10):
printf('*'*i)
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
(2)运行结果
▲ 图1.1.2 自动执行过程
可以看到该程序完成了从 TEASOFT 编写程序到AI Studio的环境的源文件的传送。
二、测试BMLCodelab
在 BMLCodeLab中包括有很多可也是用的公共代码片段库,方便面进行使用和操作。下面测试在这个环境下使用ais工具结果。
▲ 图1.2.1 BML CodeLab 环境
经过测试,执行效果与AI Studio经典环境是一样的。
▲ 图1.2.2 执行效果与AI Studio经典环境是一样的
§02 Notebook
在上面的终端内,无法使用matplotlib函数。但是,使用notebook可以使用该函数。因此,将上面的ais程序进行改造,使其能够是适应与notebook中运行程序。
一、AIS程序
下面改进的ais程序,会根据BML CodeLab中是否包含 ipynb 字符,确定后面执行的环境是出notebook,还是终端。
1、代码
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# AIS.PY -- by Dr. ZhuoQing 2021-12-07
#
# Note:
#============================================================
from head import *
import pyautogui
#------------------------------------------------------------
AIStudio_Title = 'BML CodeLab'
string = tspstring2text('aise')
if len(string) > 0: AIStudio_Title = string
filename = 'test.py'
saveonlyflag = 0
outfile = ""
notebookflag = 0
#------------------------------------------------------------
title = tspgetwindowtitle()
for t in title:
if t.find('ipynb') >= 0:
notebookflag = 1
break
#------------------------------------------------------------
tspcopyclipboard()
filelines = clipboard.paste().split('\r\n')
proclines = []
for l in filelines:
if l.find('from head import *') >= 0:
id = l.find('#>')
if id > 0:
outfile = l[id+1:]
l = ''
if l.find('from headm import *') >= 0:
id = l.find('#>')
if id > 0:
outfile = l[id+1:]
l = 'import matplotlib.pyplot as plt\nfrom numpy import *\nimport math,random,time'
l = l.replace('printf', 'print')
proclines.append(l)
filelines = '\n'.join(proclines)
#clipboard.copy(filelines)
#------------------------------------------------------------
editfile = tspgeteditfile()
editfile = os.path.basename(editfile).split('.')[0] + '.py'
#------------------------------------------------------------
for s in sys.argv[1:]:
if s[0] == '>':
saveonlyflag = 1
if len(s[1:]) > 0:
editfile = s[1:] + '.py'
elif s[0] == ':':
AIStudio_Title = s[1:]
#------------------------------------------------------------
if notebookflag == 0:
rect = tspgetwindowrect(AIStudio_Title)
pyautogui.click((rect[0]+rect[2])//2, (rect[1]+rect[3])//2)
else:
rect = tspgetwindowrect(AIStudio_Title)
pyautogui.click(rect[0]+385, (rect[1]+rect[3])//2)
#------------------------------------------------------------
def pastefile(filename):
# tspsendwindowkey(AIStudio_Title, "rm %s\r"%filename, noreturn=1)
# tspsendwindowkey(AIStudio_Title, "vi %s\r"%filename, noreturn=1)
clipboard.copy('rm %s\nvi %s\n'%(filename, filename))
tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
clipboard.copy(filelines)
# time.sleep(.1)
tspsendwindowkey(AIStudio_Title, "i", noreturn=1)
tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "%c"%27, noreturn=1)
tspsendwindowkey(AIStudio_Title, ":wq\r", noreturn=1)
# tspsendwindowkey(AIStudio_Title, "\r", noreturn=1)
def runfile(filename):
# tspsendwindowkey(AIStudio_Title, "clear\r", noreturn=1)
# tspsendwindowkey(AIStudio_Title, "python %s %s\r"%(filename, outfile), noreturn=1)
clipboard.copy('clear\npython %s %s\n'%(filename, outfile))
tspsendwindowkey(AIStudio_Title, "v", control=1, noreturn=1)
#------------------------------------------------------------
def pastenotebook(filename, runflag=1):
tspsendwindowkey(AIStudio_Title, "a", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "dd", noreturn=1)
clipboard.copy(filelines)
tspsendwindowkey(AIStudio_Title, "\r", shift=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "av", control=1, noreturn=1)
tspsendwindowkey(AIStudio_Title, "\r", shift=1, noreturn=1)
#------------------------------------------------------------
printf('\a')
if notebookflag == 0:
pastefile(editfile)
if saveonlyflag == 0:
runfile(editfile)
else:
pastenotebook(editfile)
tspfocuswindow("TEASOFT:1")
#------------------------------------------------------------
# END OF FILE : AIS.PY
#============================================================
2、测试
(1)测试代码
#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# TEST1.PY -- by Dr. ZhuoQing 2021-12-08
#
# Note:
#============================================================
from headm import *
#------------------------------------------------------------
for i in range(10):
printf('*'*i)
filename = 'outtext.txt'
with open(filename, 'w') as f:
for i in range(100):
f.write('hellohello\n')
#------------------------------------------------------------
t = linspace(0, 100, 1000)
plt.plot(t, sin(t/10))
plt.xlabel("X")
plt.ylabel("Y")
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
# END OF FILE : TEST1.PY
#============================================================
(2)测试结果
▲ 图2.1.1 在notebook中输出的matplotlib
§03 远程读取文件
一、浏览器打开文件
执行程序会将运行结果存储在局部 text文件中。该文件可以有浏览器打开。
▲ 图3.1 通过新的浏览器打开TEXT文件
在打开的浏览器的Title中包含有文件的名称,这为寻找该窗口提供了帮助。
二、刷新与拷贝
利用Chrome浏览器的“F5”刷新,可以实时更新文件内容,同时在利用选择拷贝可以将结果读取到Windows。
※ 总 结 ※
测试与完成了基于编写的python小程序“ais”,可以直接直接将TEASOFT中的编辑的python程序通过Windows剪切板发送到AI Studio,自动运行。
通过这种方式可以加快AI Studio 程序的开发和测试。
■ 相关文献链接:
● 相关图表链接: