f = open(self.path, 'r+')
re_moro = re.compile(r'MORO X=(.+) Y=(.+) Z=(.+) RX=(.+) RY=(.+) RZ=(.+)')
re_head = re.compile(r'Head X=(.+) Y=(.+) Z=(.+) RX=(.+) RY=(.+) RZ=(.+)')
re_eye = re.compile(r'Eye X=(.+) Y=(.+) Z=(.+) RX=(.+) RY=(.+) RZ=(.+)')
re_arm = re.compile(r'Arm ID=(.+) Angle=(.+)')
read_pos_arm = re_arm.findall(f.read())
read_pos_wheel = re_moro.findall(f.read())
read_pos_head = re_head.findall(f.read())
read_pos_eye = re_eye.findall(f.read())
self.write_data(read_pos_wheel, self.wheel_data)
self.write_data(read_pos_head, self.head_data)
self.write_data(read_pos_eye, self.eye_data)
self.write_data(read_pos_arm, self.arm_data)
1 回答
浮云间
TA贡献1829条经验 获得超4个赞
调用read()读取整个文件并将读取光标留在文件的末尾(没有更多内容可读)。如果您希望一次读取一定数量的行readline(),readlines()或者使用行迭代for line in handle:
。
可以使用seek(0)将读取光标返回到文件的开头(文档在这里)。如果您知道文件不会太大,您还可以将read()输出保存到变量中,并在findall表达式中使用它。
>>> a = open('file.txt')>>> a.read()#output>>> a.seek(0)>>> a.read()#same output
PS: 完成之后别忘了关闭文件;)
添加回答
举报
0/150
提交
取消