zoukankan      html  css  js  c++  java
  • 打开文件

    #在Python中,打开文件使用的是open函数。open函数的基本语法如下:
    1 open(file_name[,access_mode][,buffering])
    #参数解析
    #file_name变量:是一个包含要访问的文件名称的字符串值。
    #access_mode变量:指打开文件的模式,对应有只读、写入、追加等。access_mode变量值不是必需的(不带access_mode变量时,要求file_name存在,否则报异常),默认的文件访问模式为只读(r)。
    #buffering:如果buffering的值被设为0,就不会有寄存;如果buffering的值取1,访问文件时就会寄存行;如果将buffering的值设为大于1的整数,表示这就是寄存区的缓冲大小;如果取负值,寄存区的缓冲大小就是系统默认的值。
    #open函数返回一个File(文件)对象。File对象代表计算机中的一个文件,是Python中另一种类型的值,就像我们熟悉的列表和字典。
    #例如:
    1 #!/usr/bin/python3
    2 #-*-coding:UTF-8-*_
    3 #open
    4 
    5 path='d:/test.txt'
    6 f_name=open(path)
    7 print(f_name.name)
    #执行结果如下:
    1 D:Pythonworkspace>python open.py
    2 d:/test.txt 
    #执行结果告诉我们打开的是D盘下的test.txt文件(执行该程序前,已经创建了一个名为test.txt的文件)。
    #这里有几个概念要先弄清楚。
    ①、文件路径:在该程序中,我们先定义了一个path变量,变量值是一个文件的路径,文件的路径是指文件在计算机上的位置,如该程序中的d:/test.txt是指文件在d盘、文件名为test.txt。文件路径又分为绝对路径和相对路径。
    1)、绝对路径:总是从根文件夹开始。比如在windows环境下,一般从c盘、d盘开始,c盘、d盘被称为根文件夹,在该盘中的文件都得从根文件夹开始往下一级一级查找。在Linux环境下,一般从usr、home等跟文件夹开始,比如在上面的的示例程序,path变量值就是一个绝对路径,在文件搜索框中输入绝对路径可以直接找到该文件。
    2)、相对路径:相对于程序当前工作目录的路径。比如当前工作文件夹存放的绝对路径是d:/pythonworkspace,如果使用相对路径,就可以不写这个路径,用一个"."号代替这个路径值。
    #例如:
    1 #!/usr/bin/python3
    2 #-*-coding:UTF-8-*-
    3 #open./
    4 
    5 path='./text.txt'
    6 
    7 f_name=open(path,'w')
    8 print(f_name.name)
    #执行结果如下:
    1 D:Pythonworkspace>python open..py
    2 ./text.txt
    #执行完程序后,到d:/pythonworkspace路径下查看,可以看到创建了一个名为test.txt的文件。
    #除了单点(.),还可以使用两个点(..)表示父文件夹(或上一级文件夹)。此处不具体讨论。
     
    1、文件模式
    #前面了解了,使用open函数时可以选择是否传入mode参数。在前面的示例中,mode传入了一个值为w的参数,这个参数是什么意思呢?mode可以传入哪些值,具体信息如下表:
     
    模式
    描述
    r
    以只读方式打开文件。文件的指针将会放在文件的开头,这是默认模式。
    rb
    以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头,这是默认模式
    r+
    打开一个文件用于读写。文件指针将会放在文件的开头。
    rb+
    以二进制打开一个文件用于读写。文件指针将会放在文件的开头。
    w
    打开一个文件只用于写入。如果该文件已存在,就将其覆盖;
    如果该文件不存在,就创建新文件。
    wb
    以二进制格式打开一个文件只用于写入,如果该文件已存在,就将其覆盖;
    如果该文件不存在,就创建新文件。
    wb+
    以二进制格式打开一个文件用于读写,如果该文件已存在,就将其覆盖,
    如果该文件不存在,就创建新文件。
    a
    打开一个文件用于追加。如果该文件已存在,文件指针就会放在文件的结尾。
    也就是说,新内容将会被写入已有内容之后。
    如果该文件不存在,就会创建新文件进行写入。
    ab
    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针就会放在文件结尾。
    也就是说,新内容将会被写入已有内容之后。
    如果该文件不存在,就会创建新文件进行写入。
    a+
    打开一个文件用于读写。如果该文件已存在,文件指针就会放在文件的结尾。
    文件打开时是追加模式,如果该文件不存在,就会创建新文件用于读写。
    ab+
    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件结尾;
    如果该文件不存在,创建新文件用于读写。
    #使用open函数时,明确指定读模式和什么模式都不指定的效果是一样的,我们在前面的示例已经验证。
    #使用写模式可以向文件写入内容。+参数可以用到其他任何模式中,指明读和写是允许的。比如w+可以在打开一个文件时用于文件的读写。
    #当参数带上字母b时,表示可以用来读取一个二进制文件。Python在一般情况下处理的都是文本文件,有时也不能避免处理其他文件格式的文件。
    2、缓冲
    #open函数的第3个参数是可选择的,该参数控制文件的缓存。如果该参数赋值为0或Flase,I/O(输入/输出)就是无缓存的。如果是1或True,I/O就是有缓存的。大于1的整数代表缓存的大小(单位是字节),-1或小于0的整数代表使用默认的缓存大小。
    #读者可能对缓存和I/O有些不明白。缓存一般指的是内存,计算机从内存中读取数据的速度远远大于磁盘读取数据的速度,一般内存大小远小于磁盘大小,内存的速度比较快,但资源比较紧张,所以这里有是否对数据进行缓存的设置。
    #I/O在计算机中指Input/Output,也就是输入和输出。由于程序和运行时数据在内存中驻留,由CPU这个超快的计算核心执行,设计数据交换的地方通常是磁盘、网络等,因此需要I/O接口。
    #比如打开浏览器,访问百度首页,浏览器需要通过网络I/O获取百度网页。浏览器首先会发送数据给百度服务器,告诉他我想要首页的HMTL,这个动作是从外面接受数据,叫Input。通常,程序完成I/O操作会有Input和Output两个数据流。当然也有只用一个数据流的情况,比如从磁盘读取文件到内存,只有Input操作;反过来,把数据写到磁盘文件里,只有Output操作。
     
  • 相关阅读:
    前端组件库
    lazyload隐藏元素不生效处理方法
    Javascript规范
    发送验证码
    flex
    css3转圈
    1.15考试总结
    [violet]蒲公英题解
    ubuntu和windows下的程序对拍
    [Poetize6] IncDec Sequence题解
  • 原文地址:https://www.cnblogs.com/DLHe/p/8360889.html
Copyright © 2011-2022 走看看