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

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)


30秒到达战场
浏览 1234回答 1
1回答

浮云间

调用read()读取整个文件并将读取光标留在文件的末尾(没有更多内容可读)。如果您希望一次读取一定数量的行readline(),readlines()或者使用行迭代for line in handle:。可以使用seek(0)将读取光标返回到文件的开头(文档在这里)。如果您知道文件不会太大,您还可以将read()输出保存到变量中,并在findall表达式中使用它。>>> a = open('file.txt')>>> a.read()#output>>> a.seek(0)>>> a.read()#same outputPS: 完成之后别忘了关闭文件;)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python