tell()返回文件内光标的当前位置(就是现在读取到了文件的哪个地方了)
而read()用于从文件读取指定的字节数,如果()未给定数字或为给定的数字为负,则读取所有字节,
如果给定的数是正数就读取这些个字节,比如read(4)就是读取4个字节,read(0)就是不读取字节
举例:在asdf.txt中我们输入了英语字母表ABCDEFGHIJKLMNOPQRSTUVWXYZ
# 打开文件 fo = open("asdf.txt") print("文件名为: ", fo.name) line = fo.read(10) print("读取的字符串: %s" % (line)) line = fo.read(12) print("读取的字符串: %s" % (line))#不改变变量名就继续往下读 text=fo.read(7) print("读取的字符串: %s" % (text))#改变变量名依然继续往下读 text=fo.read() print("读取的字符串: %s" % (text)) # 关闭文件 fo.close()
运行结果是:
文件名为: asdf.txt
读取的字符串: ABCDEFGHIJ
读取的字符串: KLMNOPQRSTUV
读取的字符串: WXYZ
读取的字符串:
可见只要在同一个文件中,就算改变变量,依然会继续读下去,读完一遍之后你再让他继续读,他也没有什么可输出的了。
这个read对英文字母、数字、汉字一视同仁,一个字母、数字、汉字就是一个字节。