zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    js021-Ajax与Comet
    Android之应用程序基础
    Android之项目的目录结构
    Android之ContentProvider组件
    Android之BroadcastReceiver组件
    Android之Activity组件
    Android之Service组件
    2.绘制简单的几何图形
    1.一个简单的OpenGL程序
    2.由深拷贝和浅拷贝引发的写时拷贝技术
  • 原文地址:https://www.cnblogs.com/danscarlett/p/3973193.html
Copyright © 2011-2022 走看看