zoukankan      html  css  js  c++  java
  • python之文件处理

    一.基础操作

    1.打开文件

     f = open(文件路径,打开方式,编码模式) #打开文件并返回操作对象

    打开方式

    说明 注意
    'r' 只读方式 文件必须存在
    'w' 只写方式

    文件不存在则创建文件

    文件存在则清空文件

    'a' 追加方式 文件不存在创建文件
    'r+'/'w+' 读写方式  
    'a+' 追加和读写方式  

    2.读取文件

    f.read() #不加参数默认读取整个文件 例如:read(1024) #读取1024个字节

    f.readline() #不加参数默认读取一行

    f.readlines()#读取buffer字节大小的内容 ,返回每一行所组成的列表

    iter #使用迭代器读取文件,读取所有内容

    例子:

      iter_f = iter(f)

      lines = 0

      for line in iter_f :

        f.read(line) #一行行读取

        lines += 1

      return lines #一共多少行

    3.文件写入与写缓存

    f.write(str) #将字符串写入文件

    f.writelines(sequences_of_strings) #写多行到文件,参数为可迭代对象

    注意:写之后,直接查看文件,会发现内容并没有被写到文件里,因为此时内容还在缓存中,并没有写到磁盘上

    解决方法:

    (1)主动调用close()或者flush方法,写缓存同步到磁盘;(2)写入数据量大于或者等于缓存,写缓存同步到磁盘

    4.文件关闭

    f.close()

    为什么需要关闭?

    (1)将写缓存同步到磁盘;(2)Linux系统中每个进程打开文件的个数是有限的;(3)如果打开文件数到了系统限制,再打开文件就会失败

    5.文件指针

    写入与读取的问题

    (1)写入文件后,必须打开才能读取写入内容

    (2)读取文件后,无法重新再次读取读过内容

    文件指针移动的过程:

    文件指针操作方法:

    seek(偏移量,相对偏移位置)

    指针定位方式:

    os.SEEK_SET:相对文件起始位置 0

    os.SEEK_CUR:相对文件当前位置 1

    os.SEEK_END:相对文件结尾位置 2

    使用例子:

    f.seek(0,os.SEEK_SET)  #文件指针回到起始位置

    f.seek(0,os.SEEK_END)  #文件指针指到文件结尾

    f.seek(-5,os.SEEK_CUR)  #指针从当前位置向前偏移5个位置

    f.tell() #查看指针当前所指位置

    二.文件属性以及OS模块使用

    1.文件属性

    (1)属性方法

    f.fileno()#文件描述符

    f.mode#文件打开权限,只读、只写、读写等

    f.encoding #文件编码格式

    f.closed#文件是否关闭

    (2)标准文件

    标准输入:sys.stdin 标准输出:sys.stdout 标准错误:sys.stderr

    (3)文件命令行参数

    执行程序时,可以根据参数不同完成不同功能

    sys模块提供sys.argv属性,通过该属性可以得到命令行参数,sys.argv是字符串组成的列表

    python a.py 参数名

    2.编码格式

    这篇博文讲解很详细

     https://www.cnblogs.com/yyds/p/6171340.html

    3.LINUX文件系统

    文件包括:磁盘(ext2.ext4)文件,NFS文件系统,各种外设(sd卡,USB设备)等

    4.OS模块对文件和目录操作

    (1)OS模块

    使用os模块打开文件

    os.open(文件名,打开方式,)  

    打开方式:os.O_CREAT(创建文件) os.O_RDONLY(只读方式) os.O_WRONLY(只写方式) os.O_RDWR(读写方式)

    使用os模块对文件进行操作

    os.read(文件描述符,buffersize) #读取文件

    os.write(文件描述符,string)#写入文件

    os.lseek(文件描述符,pos,how) #文件指针操作

    os.close(文件描述符) #关闭文件

    例子

    f = os.open('文件路径',os.O_CREAT|os.O_RDWR) #创建文件

    n = os.write(f,'hello') #将hello写入文件

    l = os.lseek(f,0,os.SEEK_SET)#返回当前指针的位置,此时l的值应该为0

    str1 = os.read(f,5) #读取5个字节,此时str1为hello

    os.close(f) #关闭

    (2)OS模块对文件操作的方法

    举例:

     os.access('文件路径名称',os.F_OK) #文件存在,则返回True否则返回False

    os.access('文件路径名称',os.W_OK) #文件可写,则返回True否则返回False

    os.listdir('./') #显示当前文件文件目录下的所有路径

    其他方法使用方法类似

    (3)os模块对路径的操作

  • 相关阅读:
    Hadoop Partitioner编程
    Hadoop Mapreduce之WordCount实现
    在linux下编写maven程序
    Hadoop RPC通信机制
    Hadoop 源码分析——Job提交过程
    HDFS的java接口
    hadoop 文件系统shell命令
    同步 vs 异步
    C++ STL详解
    C++中struct和class定义类区别
  • 原文地址:https://www.cnblogs.com/jiangfan95/p/11965865.html
Copyright © 2011-2022 走看看