【python学习笔记】pthon3.x中的文件读写操作

  在学习python文件读写的时候,因为教程是针对python2的,而使用的是python3。想要利用file类时,类库里找不到,重装了python2还是使不了。在别人园子认真拜读了《详解python2和python3区别》(已收藏)之后,才发现python3已经去掉file类。

  现在利用python进行文件读写的方法更加类似于C语言的文件读写操作。

  如今总结如下:

  一 打开文件—— f = open('poem.txt','x+'):

    读过open的帮助文档,然后自己翻译了一下,现给大家分享一些摘抄注释:

    1 open(...)的作用:打开文件并返回一个数据流。打开出错则返回IOError。

    2 打开文件的方法:可通过文件名(如果不在当前目录下,则提供路径)来打开文本或比特流(即文件)或者包装一个整型文件描述符(??英文是integer file descriptor,存疑)。

    3 打开文件的模式:默认打开文件的方式是'rt'

    字母    含义
    --------- ---------------------------------------------------------------
    'r'       只读模式打开 (默认模式)
    'w'       只写模式打开,首先截断文件(??什么是截断文件?存疑。)
    'x'       新建文件并打开(如果文件已经存在,则产生一个FileExistsError错误)
    'a'       读文件,如果文件存在,在文件尾进行追加
    'b'       二进制读写模式
    't'       文本读写模式(默认)
    '+'       打开一个磁盘文件用于更新 (进行读写操作)
    'U'       通用换行模式 (不赞成使用,newline的值可以是None, '', ' ', ' ', 和 ' ')
    ========= ===============================================================
    

    4 open(...)使用方法:

    file = open(file, mode='r', buffering=-1, encoding=None,errors=None, newline=None, closefd=True, opener=None)

    (后六个参数可选)

 

  二 关闭文件—— f.close( )

    

  使用open打开文件后一定要记得调用文件对象的close()方法。

  可以直接调用close()关闭文件。

  也可以用try/finally语句来确保最后能关闭文件。(参考资料:http://jingyan.baidu.com/article/aa6a2c14d54f7f0d4c19c487.html

  file_object = open('thefile.txt') 

  try: 

    all_the_text = file_object.read( ) 

  finally: 

    file_object.close( )

  注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。

  

    三 读文件—— file.read(size)

    1 file.read(n) 指定参数,读取从当前位置之后n个字符或字节
    2 file.read() 不指定参数,读取整个文件

    3 file.readline() 读取一行字符串,这个字符串是以一个行结束符' '为结束的,如果它返回了一个空字符串,说明已经到了文件的结尾,如果返回一个' ',则说明是一个空行。

    4 file.readlines() 读取文件中的每一行,每行字符组成一个字符串。如果要读取文件的所有行,则可以使用list(f)函数或者f.readlines()。

    

   四 写文件——file.write()

    file.write(string)会将string的内容写入到文件中,返回一个数值,是写入的字符的个数。如果要把其他对象写入到文件中,要先将其转换为字符串。

    五 文件读取指针的位置

    

    file.tell()会返回当前文件读写指针的位置,如果是用二进制打开的,则这个位置表示从文件头开始到当前位置的字节数,如果是在文本模式,则这个位置的含义就比较模糊了。

    为了改变文件的读写指针的位置,可以使用file.seek(offset,from_what)函数,这个函数会从某个位置加上offset值。from_what值有三个,0表示从文件头开始,1表示从当前位置开始,2表示从文件末尾开始。默认值是0.

    参考资料:http://www.cnblogs.com/fnng/archive/2013/05/22/3091982.html

    

欢迎关注我的微博:@机器学习日记 https://weibo.com/6382778167/profile?rightmod=1&wvr=6&mod=personinfo
原文地址:https://www.cnblogs.com/danscarlett/p/3973193.html