open() 文件读写
写入文件
Python提供内置的函数 open 可以读取和写入文件。
with open('./monkey.log',mode='w',encoding='utf8') as file:
file.write("helloworld\n")
file.writelines(["hello\n","hi\n"])
open 函数的主要权限
字符 | 意义 |
---|---|
‘r’ | 读取(默认) |
‘w’ | 写入,并先截断文件 |
‘x’ | 排它性创建,如果文件已存在则失败 |
‘a’ | 写入,如果文件存在则在末尾追加 |
‘b’ | 二进制模式 |
‘t’ | 文本模式(默认) |
‘+’ | 打开用于更新(读取与写入) |
读取文件
with open('./monkey.log',mode='r',encoding='utf8') as file:
# 读取文件的内容,将文件内容给变量 txt
txt = file.read()
print(txt)
练习
生成 testuser1-testuser100 100个测试用户名,写入到文件testuser.txt
with open("./testuser.txt",mode="w",encoding="utf8") as file:
file.write("用户名\n")
for i in range(1,101):
file.write(f"testuser{i}")
稍微改下
with open("./testuser.csv",mode="w",encoding="utf8") as file:
file.write("用户名,密码\n")
for i in range(1,100001):
file.write(f"testuser{i},123456\n")
os 模块
os.path 路径相关
# 导入os模块
import os
# 文件的绝对路径 __file__ python内置全局变量, 表示当前文件
file = os.path.abspath(__file__) # abspath 文件的绝对路径
print(file) # C:\Users\zengy\PycharmProjects\pythonProject28\day3_os.py
# 获取文件所在的目录
dir = os.path.dirname(file)
print(dir) # C:\Users\zengy\PycharmProjects\pythonProject28
# 路径拼接
logs_dir = os.path.join(dir,"logs")
print(logs_dir) # C:\Users\zengy\PycharmProjects\pythonProject28\logs
# 如果目录的路径不存在
if not os.path.exists(logs_dir):
# 创建目录
os.mkdir(logs_dir)
# 在logs目录创建 monkey1.log文件
# 路径拼接
for i in range(1,11):
monkeyfile = os.path.join(logs_dir,f'monkey{i}.log')
print(monkeyfile)# C:\Users\zengy\PycharmProjects\pythonProject28\logs\monkey1.log
with open(monkeyfile,mode='w',encoding='utf8') as file:
file.write(f"创建{monkeyfile}文件")
os.system() 执行命令
可以执行命令行中的命令。
import os
# 执行monkey命令
os.system('adb shell monkey -vv 100 > 01.log')
假设连接3台设备
devices_list = ["127.0.0.1:62001","127.0.0.1:62025","127.0.0.1:62026"]
请编写自动化代码 在这三台设备上执行 monkey 命令
adb -s ? shell monkey -p org.cnodejs.android.md -vv 300
将运行日分别保存到3个对应.log文件。
devices_list = ["127.0.0.1:62001","127.0.0.1:62025","127.0.0.1:62026"]
for device in devices_list:
import os
# 字符串中将 ”:“ 改为其它字符 replace 替换
device_log_file = device.replace(":","_")
print(device_log_file)
os.system(f"adb -s {device} shell monkey --throttle 500 -p org.cnodejs.android.md -vv 300 > {device_log_file}.log")