文件的操作介绍

文件打开的方法

主要有两种:

  1. no with

    格式:open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
    常用:variable = open('路径\文件',mode,encoding=None)
    variable.close()
    #不使用with方法时,在文件操作结束时要关闭文件
  2. with

    格式:with open('路径\文件',mode,encoding=None) as variable:
    #该方法比较常用,在文件操作结束时不需要手动关闭文件,该方法默认自动关闭文件。

文件的打开模式

  1. r

    只读模式(默认),如果文件不存在将报错。

  2. w

    只写模式:可写,不可读,如果文件不存在,将创建,存在将进行覆盖。

  3. a

    追加模式:可写,不可读,文件不存在就创建,文件存在就在文件末尾追加。

  4. +

    表示同时读写操作:r+/w+/a+

    r+:可读可写,文件不存在将报错。
    w+:可读可写,文件不存在将创建,存在将覆盖。
    a+:可读可写,文件不存在将创建,存在将在文件末尾追加。
  5. U

    将 \r \n \r\n自动转换为 \n(在读取模式使用:rU/r+U)

  6. b

    二进制格式存储文件内容:rb/wb/ab/r+b/w+b/a+b

    rb:二进制格式读文件,可读,不可写,文件不存在将报错。
    wb:二进制格式写文件,不可读,可写,文件不存在,将创建,文件存在将覆盖。
    ab:二进制格式追加文件内容,不可读,可写,文件存在直接追加,不存在将创建。
    r+b:二进制格式读写文件,可读,不可写,文件不存在将报错。
    w+b:二进制格式写读文件,可读,可写,文件不存在,将创建,文件存将覆盖。
    a+b:二进制格式追加文件内容,可读,可写,文件不存在将创建,文件存在将追加在末尾。

    注:读写内容时需要使用字符串的编码和解码操作str.encode('utf-8')和str.decode('utf-8'),默认格式也是当前系统所使用的编码格式。

注:查看系统默认编码方法:

格式:sys.getdefaultencoding()
#需要导入sys模块,调用该方法来获取当前系统默认的编码格式。

文件的常用操作

  1. close(关闭文件)

    格式:file.close()
    #该方法主要用于no with的打开文件情况下。
  2. detach(分离)

    格式:file.detach()
    #该方法主要用于返回缓存区打开文件的路径和模式,日常很少使用。
  3. fileno(文件描述符)

    格式:file.fileno()
    #返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
  4. flush(刷新)

    格式:file.flush()
    #刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
  5. isatty(终端)

    格式:file.isatty()
    #如果文件连接到一个终端设备返回 True,否则返回 False。
  6. read(按字节读取文件)

    格式:file.read(size=-1)
    #文件读取指定的字节数,如果未给定或为负则读取所有。
  7. readable(是否可读)

    格式:file.readable()
    #判断文件是否可读,可读则返回True,否则返回False。
  8. readline(按行读文件)

    格式:file.readline(size=-1)
    #读取整行,包括 "\n" 字符,如果未给定或为负则读取一行。如果指定字节大小小于该行长度时,则只读取到第一行第N个字节。如果大于该行长度,则继续读下一行。
  9. seek(指定指针位置)

    格式:file.seek(whence=0)
    #指定指针位置,文件的开始指针位置为0。
  10. seekable(指针是否可变)

    格式:file.seekable()
    #判断指针是否可改变,如果可以改变则返回Ture,否则返回False。
  11. tell(显示指针位置)

    格式:file.tell()
    #返回当前指针位置。
  12. truncate(截取文件)

    格式:file.truncate(pos=None)
    #指定截取N个字节,从0开始,0-N保留,N之后的全部删除,该方法只能用于可写模式。
  13. write(写入)

    格式:file.write(text)
    #把内容填写到文件中。
  14. writable(是否可写)

    格式:file.writabel()
    #判断文件是否可写,如果可写,则返回True,否则返回值False。
  15. readlines(读每行)

    格式:file.readlines(hint=-1)
    #一行一行读取文件内容,并把读取到的数据以列表的形式返回,默认读全部文件,指定字节时,如果指定的长度小于该行长度,则只读取该行内容,如果指定长度大于该行长度,则继续读下一行。
  16. writelines(序列写入)

    格式:file.writelines(lines)
    #把序列写入到文件中,接收参数可以是一个序列,也可以是一个字符串,write只能接收字符串。

常用的文件属性

  1. buffer(模式和路径)

    格式:file.buffer
    #功能与detach()一样,返回文件打开的模式和文件路径
  2. closed(是否关闭)

    格式:file.closed
    #判断文件是否已经关闭,如果已经关闭,则返回True,否则返回False。
  3. encoding(编码)

    格式:file.encoding
    #判断文件的编码格式,未指定时返回cp936。
  4. errors(报错)

    格式:file.errors
    #取值一般有strict,ignore,当取strict的时候,字符编码出现问题的时候,会报错,当取ignore的时候,编码出现问题,程序会忽略而过,继续执行下面的程序。
  5. line_buffering

    格式:file.line_buffering
    #返回布尔值
  6. name

    格式:file.name
    #返回文件的名字
  7. newlines

    格式:file.newlines
    #可以取的值有None, \n, \r, ”, ‘\r\n',用于区分换行符,但是这个参数只对文本模式有效

Python中文件的操作的更多相关文章

  1. python 中文件输入输出及os模块对文件系统的操作

    整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2. ...

  2. python中OS模块操作文件和目录

    在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的. 首先导入模块,并查看操作系统的类型: >>> import os os.name # ...

  3. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  4. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  5. python中的日志操作和发送邮件

    1.python中的日志操作 安装log模块:pip install nnlog 参数:my_log = nnlog.Logger('server_log.log',level='debug',bac ...

  6. 一句python,一句R︱python中的字符串操作、中文乱码、NaN情况

    一句python,一句R︱python中的字符串操作.中文乱码.NaN情况 先学了R,最近刚刚上手Python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句pytho ...

  7. (Python基础教程之八)Python中的list操作

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  8. python中文件的复制

    python中文件的复制 python的os模块有很多文件目录相关的函数,但没有提供直接复制文件的函数,当然可以通过边都边写的方式复制文件.想要直接复制文件可以通过shutil模块 shutil模块是 ...

  9. OC中文件的操作

    OC中文件操作,在之前的文章中,已经接触到了文件的创建了,但是那不是很具体和详细,这篇文章我们就来仔细看一下OC中是如何操作文件的: 第一.首先来看一下本身NSString类给我们提供了哪些可以操作文 ...

随机推荐

  1. css中的position

    一.position语法与结构 position语法: position : static absolute relative position参数:static : 无特殊定位,对象遵循HTML定位 ...

  2. 3-51单片机WIFI学习(开发板8266底层源码介绍)

    上一篇链接  http://www.cnblogs.com/yangfengwu/p/8743502.html 直接上源码:注意源码有两部分,第一部分是一开始的时候写在模块内部的,另一部分是存在手机内 ...

  3. LXC学习实践(3)快速体验第一个容器

    1.搭建第一个 LXC 虚拟计算机 #yum install lxc* 2.安装软件包后要检查 Linux 发行版的内核对 LXC 的支持情况,可以使用下面命令 #lxc-checkconfig #l ...

  4. Linux上 ps 命令的用法

    ps a 显示现行终端机下的所有程序,包括其他用户的程序.2)ps -A 显示所有程序. 3)ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示. 4)ps -e 此 ...

  5. Oracle12c在Win10上的安装配置实践

    1.环境 操作系统:Win10专业版(64位) 数据库:Oracle 12c Release 2(Version 12.2.0.1.0,64位) 2.下载Oracle12c oracle官网下载地址: ...

  6. 详解Class

    Classs是es6提供的类,相当于es5的构造函数. 写法: class Foo { constructor () { // new 的时候会调用该方法,可以通过return改变构造函数的返回值 r ...

  7. Struts(九):值栈(OGNL)

    引言 在我们开发过程中,往往会使用一个对像传递到一个具体的action中,之后到跳转页面中访问对应对象的具体的参数. 比如:我们搭建一个struts2项目: 回顾下如何搭建strut2: 1.下载的s ...

  8. 《阿里巴巴 Java 开发手册》读书笔记

    偶然看到阿里巴巴居然出书了???趁着满减活动(节约节约....)我赶紧买来准备看看,刚拿到的时候掂量了好多下,总觉得商家给我少发了一本书,结果打开才知道..原来这本书这么小.... 编码规范的重要性 ...

  9. [LeetCode] License Key Formatting 注册码格式化

    Now you are given a string S, which represents a software license key which we would like to format. ...

  10. Python数据抓取_BeautifulSoup模块的使用

    在数据抓取的过程中,我们往往都需要对数据进行处理 本篇文章我们主要来介绍python的HTML和XML的分析库 BeautifulSoup 的官方文档网站如下 https://www.crummy.c ...