py文件file的read方法,第二次为什么无返回值

awaken_ 发布于 2017/02/09 14:08
阅读 296
收藏 0
f=open('e:\\record.txt')
print(f)
txt=f.read()
print(txt)
txt1=f.read()
print(txt1)    #第二次read无返回值
加载中
0
mickelfeng
mickelfeng

file. read ( [ size ] )

调用read()时,如果不指定size参数,则会一直读,知道文件末尾(EOF)

即,直接读取文件的全部内容了。

即,read()不是读单个字节,而是文件的所有的内容。

所以,此处,既然调用了一次read()了

已经获得了文件的全部的内容了。

那么如果再次调用,必然是一个字节也读取不到:

因为已经(文件指针都指)到文件末尾了,没有更多的内容(字节)供你读了。

所以,必然返回空或-1等值了。

所以,总的说就是:

正常的写代码,学习的思路是:

尽量在写代码之前,通过各种办法,去搞懂你所用的api的含义

然后再动手写,任何事情,不确定的情况下,都不要按照固有的,原有的想法,理念,去理解一个东西,

即不要想当然,因为不同的语言,不同的api,都是不尽相同的。各有各的特点和用法。

必须搞懂你要用的api的真正含义,才能写出正确的,质量高的代码,真正又快又好的实现你要的功能。

罗祥
罗祥
说的好
mickelfeng
mickelfeng
Python在web方面,和数据挖掘方面都用得比较多,还有运维,看你从事哪方面的工作。
a
awaken_
api就是函数吗?是要我理解read?我接下来这些api都学习了,然后再怎么学习呢?目标是工作,有什么好的建议吗?大神
0
木_Lillian
木_Lillian
f=open('e:\\hello.txt')
print(f)
txt=f.read()
print(txt)
f.close()
f=open('e:\\hello.txt')
txt1=f.read()
print(txt1)

改成这样才可以,因为一个文件打开后read(),再close()

返回顶部
顶部