• python打开文件方式


         python中的open()函数用于打开一个文件,创建file对象,相关方法才可以调用它进行读写

         语法:open(name,[,model[,buffering]])

    模式描述
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

           1.读文件     

         

          如果文件打开成功,则显示打开文件ex15_sample.txt的内容

         

          最后一步调用close()方法关闭文件,使用文件完毕后必须关闭文件。因为文件对象会占用操作系统资源,且操作系统同时打开文件数量有限

          

           由于文件读写会产生IO error ,如果报错会导致后面的close()无法执行,所以为了保证是否出错都能正确关闭文件,可以使用try-finally 来实现

          

         (ps:注意try-finally中的缩进问题)

        2.使用with open函数打开,以及常见的坑

    #with作用就是调用close()方法

         

        跟前面的try-finally实现功能一样,但是代码更简洁     

       file对象方法    

    •     file.read(size):size未指定则返回整个文件,如果文件大小>2倍内存则有问题.f.read()读到文件尾时返回""(即空字符串)。
    •     file.readline():每次读取一行
    •     file.readlines([size]):一次性读取所有内容并返回list
    •     for line in f:print(line) :通过迭代器访问
    •     f.write("hello "):如果要写入字符串以外的数据,先将他转换为字符串
    •     f.tell():返回一个整数,表示当前文件指针的位置(文件头的字节数)

           

    •      如果文件小,用read()一次性读取最方便,不确定大小建议用read(size)比较保险,如果是配置文件使用readlines()最方便。

        1.打开非utf-8编码的文件    

    f=open('/users/wujing/desktop/test2020/ex15_sample.txt','r',encoding='gbk')
    f.read()
    

      2.打开二进制文件

     读取二进制文件,比如图片、视频等,用rb模式打开即可

           

    参考资料:https://blog.csdn.net/chenmozhe22/article/details/81434549   

  • 相关阅读:
    Netbeans 设置模板
    Linux 下 netbeans 字体抗锯齿正解
    Sublime Text 2 快捷键 (windows)
    整理的代码规范
    .ssh/config简单使用
    linux 生成KEY的方法与使用
    error:1407742 E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
    The repository 'http://cdn.debian.net/debian stretch Release' is not signed.
    字符串转命令行字符图片
    Linux不在显示器上方总是显示企鹅
  • 原文地址:https://www.cnblogs.com/mernva/p/13721383.html
Copyright © 2020-2023  润新知