采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
按你的课程,编写了代码,会提示这个错误啊:TypeError: a bytes-like object is required, not 'str'
要怎么改才可以
# /usr/bin/python # encoding:utf-8 import csv import os import time class App(object): def __init__(self): self.content = "" self.startTime = 0 # 启动App def LaunchApp(self): cmd = 'adb shell am start -W -n com.expflow.reading/.activity.SplashActivity' self.content = os.popen(cmd) # 停止App def StopApp(self): cmd = 'adb shell am force-stop com.expflow.reading' # cmd = 'adb shell input keyevent 3' os.popen(cmd) # 获取启动时间 def GetLaunchedTime(self): for line in self.content.readlines(): if "ThisTime" in line: self.startTime = line.split(":")[1] break return self.startTime # 控制类 class Controller(object): def __init__(self, count): self.app = App() self.counter = count self.alldata = [("timestamp", "elapsedtime")] # 单次测试过程 def testprocess(self): self.app.LaunchApp() time.sleep(5) elpasedtime = self.app.GetLaunchedTime() print(elpasedtime) self.app.StopApp() time.sleep(3) currenttime = self.getCurrentTime() self.alldata.append((currenttime, elpasedtime)) # 多次执行测试过程 def run(self): while self.counter > 0: self.testprocess() self.counter = self.counter - 1 # 获取当前的时间戳 def getCurrentTime(self): currentTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(currentTime) return currentTime # 数据的存储 def SaveDataToCSV(self): csvfile = open("startTime.csv", 'wb') writer = csv.writer(csvfile) writer.writerows(self.alldata) #writer.writerows(self.alldata).encode(encoding='utf-8') csvfile.close() if __name__ == "__main__": controller = Controller(1) controller.run() controller.SaveDataToCSV()
报错的是这个:writer.writerows(self.alldata)
调试了一下, csvfile = open("startTime.csv", 'wb')这行改成, csvfile = open("startTime.csv", 'w') 就行了。python3,字符串和字节有了区分。wb是写入字节,改成w就没问题了
可以了,谢谢啦
没有啊,主要我电脑是python3的
那有可能差的就是这了,把代码贴出来看看,是哪一行报错了?
writer.writerows(self.alldata)
仔细对比一下,看看是不是缺了小括号什么的
登录后可查看更多问答,登录/注册
Android测试工程师必备技能,性能 、压力、 接口、 持续集成、自动化脚本
829 14
1.8k 13
944 12
771 9
1.4k 7