Python 内置函数
🐍为了写出我们想要的脚本, 我们首先应当掌握的是python基础语法以及常用内置函数
😄下面是python基础库以及全局自带函数, 如正则库re, 堆栈回溯库traceback, 线程库thread
建议阅读菜鸟Python3教程
🐳如果需要更详细深入的资源建议到bilibili自己喜欢的老师搜索学习^_^
🐳加油!
另外, 我们需要意识到
在Yyds.Auto中, 我们编写的python代码是在安卓设备中运行的, 某些函数的行为会跟在电脑主机或者服务器中运行python代码不一样 包括但不限于以下的不同点
- 非常重要:
print()
函数将会被重定向到logcat, 并复制到websockets流中发送到我们的开发插件以及app - 非常重要:
exit()
函数就会抛出一个异常而导致脚本工程停止, 而不是退出python虚拟机. 所以你如果想简单明了地中断代码运行, 直接调用exit
即可 import
导入会优先从工程目录/sdcard/Yyds.Py/工程名/
中导入os.getcwd()
返回当前工程根目录- 可以在python中调用java函数, 比如我们的通讯接口就是调用到java类以及函数
- 不建议异步, 谨慎使用多线程, 会增加脚本复杂性和降低和维护性.
- 当然, 也不建议使用多进程(multiprocessing), 在安卓虚拟机进程上底层调用fork进程会导致一些隐密的bug, 不是一个稳定的编程方式
python全局函数以及自带库例子
# 输出打印
a = 5
b = "hello"
print(a, b)
# 字符串模版
print(f"a={a}, b={b}")
# 字符串转整数
c = str("999")
print(c)
# 线程
import thread
def r():
print("线程")
thread.Thread(target=r).start()
# 文件读写
import codecs
with codecs.open("/sdcard/1.txt", encoding="utf-8", mode="rw") as f:
print(f.read())
f.write("change")
# 下载文件
def download(url, save_local_path):
r = requests.get(url, stream=True)
if r.status_code == 200:
with open(save_local_path, 'wb+') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
# 配置缓存
class Person:
def __init__(self, n, a):
self.name = n
self.age = a
def show(self):
print(self.name + "_" + str(self.age))
aa: Person
def test_cache():
"""
缓存一些配置
:return:
"""
global aa
aa = Person("chenMoney", 2)
aa.show()
f = open('.cache', mode='wb+')
pickle.dump(aa, f, 0)
f.close()
print("测试反序列执行, 如果输出信息, 则正常")
f = open('.cache', mode='rb')
bb = pickle.load(f)
f.close()
bb.show()