zoukankan      html  css  js  c++  java
  • 简述 Python3 文件处理

    1、文件处理

      找到文件 --> 打开文件 --> 操作:读、写 --> 保存 --> 关闭


    1.1.1 写文件

      (只要牵扯到文件操作,都是字符串;写文件的时候需要把写的数字转换成字符串;utf-8 只有在存储时才用。)

      

     1 f = open('歌词', ‘w’ ,  endcoding = 'utf-8')    
     2 # f:文件操作符、文件句柄、文件操作对象
     3 # open 打开文件是依赖了操作系统提供的途径
     4 # 操作系统有自己的编码,open在打开文件的时候默认使用操作系统的编码
     5 # win : gbk    mac/Linux : utf-8
     6 
     7 # 习惯给文件操作对象命名为: f    file    f_obj    f_handler    fh
     8 
     9 print(f.writable())    # 判断文件是否可写
    10 print(f.readable())    # 判断文件是否可读
    11 
    12 f.write('6785675')      # 写文件时,需要写数字的话,则会把数字转换成字符串
    13 f.write('sadasdas')     # 写入字符串内容
    14 f.write('
    asasad')     # 文件的换行 
    

    15 f.write('哈哈') # 注意编码的统一性 utf-8 Unicode gbk 16 17 f.close() # 结尾要加上close语句

    注:

    open() 打开文件是依赖了操作系统提供的途径;
    操作系统有自己的编码,open在打开文件的时候默认使用操作系统的编码(win gbk    mac/linux utf-8)

    注:

    ‘’ 转义符号 前面加 r‘str’ 或者 \ 可以取消转义

    1.1.2 找到文件详解(find files):

    文件与python的执行文件在同一路径下的话,直接使用文件名就可以打开文件;
    文件与python的执行文件不在同一路径下的话,用绝对路径找到文件;
    
    文件的路径需要用取消转译的方式来表示:1)\    2)r'路径'
    如果以写文件的方式打开一个文件,那么不存在的文件会被创建,存在的文件之前内容会被清空

    1.1.3 打开文件(open files):

    打开方式:
    
    文件句柄 = open('文件路径', '模式') 

    模式可以是一下方式以及他们之间的组合:

    #1. 打开文件的模式有(默认为文本模式):
    
    
    r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    
    w,只写模式【不可读;不存在则创建;存在则清空内容】
    
    a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】
    
    #2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,
      使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)
    rb wb ab 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

    补充:

    # b : 适用于图片、音乐、视频等任何文件
    # 传输: 上传、下载
    
    # a :追写内容(w的话会重新写入内容,如果之前里面有内容,会把前面的内容清空重新写入)
    # a+:追加可读
    
    # r+: 可读可写: 1)先读后写:写是追写
                    2)先写后读:从头开始写
    
    #w+ : 可写可读  :一上来文件就清空了 
        
          尽管可读  :1)但是读取出来的内容是你这次打开文件新写入的
                    2)光标在最后,需要主动移动光标才可以读
    f = open('歌词', 'w+', encoding='utf-8')
    f.write('abc
    ')
    f.write('哈哈哈')
    f.seek(0)
    print(f.read())
    
    f.close()
    # python (原生不支持直接修改)里没有直接修改文件的功能

    总结:

    # 一般情况下:文件操作要么读,要么写,很少会读写、写读同时用
    
    # 常用的:    r、w、a
    # rb, wb, ab 不需要指定编码了

    实例:

    # 只显示文件中有内容的行
    # 已有shoplist文件,且文件内容中有有空行,要求只显示文件中有内容的行
    
    f = open('shoplist', encoding='utf-8')
    goods_list = []
    for line in f:
        if line.strip():
            print(line.strip())
    f.close()

    1.1.4 关闭文件详解(close files):

    操作系统级别的关闭文件资源:f.close()    # 必须写
    
    del f    主动释放一个python程序内存的变量     # 可写可不写

    1.2 读文件:

    打开文件 --> 读取文件


    1.2.1 读取文件

    1)读取文件的第一种方式: read()的方法,用read方法会一次性的读出文件中的所有内容
    2)读取文件的第二种方式: read(n),指定读取n个单位
    3)读取文件的第三种方式: readline(),按照行读取,每次执行就会往下读一行
    4)读取文件的第四种方式: readlines(),返回一个列表,将文件中的每一行作为列表中的每一项返回一个列表
    5)读取文件的第五种方式: 
      最常用的读取方法   
    for i in f:   print(l.strip())

    2.文件内光标移动:

    1)seek:移动光标到第几个字节的位置(一般作用:移动到最开始和最末尾)

    seek(o)  :移动到最开始
    seek(0,2)  :移动到最末尾
    f.seek(3)    # 光标移动到三个字节的地方
    content = f.read(2)    # 读取两个字符

    2)tell : 告诉你光标在第几个字节

    3)truncate:截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果(保留n个字节)

  • 相关阅读:
    pandas --index ,reindex, set_index, reset_index , reindex_like函数 之 reset_index
    pandas --index ,reindex, set_index, reset_index , reindex_like函数 之 reindex
    pandas 合并操作 append处理重复项
    pandas --合并操作concat函数和append
    pandas --合并操作join函数
    pandas 做合并操作-merge函数
    百度地图应用
    jstl 标签 的应用
    Linux 下MySQL 安装与卸载
    Linux 下tomcat的配置
  • 原文地址:https://www.cnblogs.com/bigtreei/p/7755382.html
Copyright © 2011-2022 走看看