为了账号安全,请及时绑定邮箱和手机立即绑定

python文件操作的read()函数为什么只生效一次?

python文件操作的read()函数为什么只生效一次?

30秒到达战场 2018-12-17 09:06:41
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: 完成之后别忘了关闭文件;)


查看完整回答
反对 回复 2018-12-17
  • 1 回答
  • 0 关注
  • 1233 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信