要读取文件内容,请调用 f.read(size),它会读取一些数据并将其作为字符串(在文本模式下)或字节串对象(在二进制模式下)返回。 size 是一个可选的数值参数。 当 size 被省略或者为负数时,将读取并返回整个文件的内容;如果文件的大小是你的机器内存的两倍就会出现问题。 当取其他值时,将读取并返回至多 size 个字符(在文本模式下)或 size 个字节(在二进制模式下)。 如果已到达文件末尾,f.read() 将返回一个空字符串 ('')。

    f.readline() 从文件中读取一行;换行符(\n)留在字符串的末尾,如果文件不以换行符结尾,则在文件的最后一行省略。这使得返回值明确无误;如果 f.readline() 返回一个空的字符串,则表示已经到达了文件末尾,而空行使用 '\n' 表示,该字符串只包含一个换行符。:

    1. >>> f.readline()
    2. 'This is the first line of the file.\n'
    3. >>> f.readline()
    4. 'Second line of the file\n'

    如果你想以列表的形式读取文件中的所有行,你也可以使用 list(f)f.readlines()

    f.write(string) 会把 string 的内容写入到文件中,并返回写入的字符数。:

    1. >>> f.write('This is a test\n')
    2. 15

    f.tell() 返回一个整数,给出文件对象在文件中的当前位置,表示为二进制模式下时从文件开始的字节数,以及文本模式下的意义不明的数字。

    要改变文件对象的位置,请使用 f.seek(offset, whence)。 通过向一个参考点添加 offset 来计算位置;参考点由 whence 参数指定。 whence 的 0 值表示从文件开头起算,1 表示使用当前文件位置,2 表示使用文件末尾作为参考点。 whence 如果省略则默认值为 0,即使用文件开头作为参考点。

    1. >>> f = open('workfile', 'rb+')
    2. >>> f.write(b'0123456789abcdef')
    3. 16
    4. 5
    5. >>> f.read(1)
    6. b'5'
    7. >>> f.seek(-3, 2) # Go to the 3rd byte before the end
    8. 13
    9. b'd'

    文件对象有一些额外的方法,例如 isatty() 和 ,它们使用频率较低;有关文件对象的完整指南请参阅库参考。