zoukankan      html  css  js  c++  java
  • 文件操作

    文件操作

    利用python操作文件的几个参数

    文件路径:path
    打开方式:mode(r(读),w(写),a(追加),读写,写读)
    编码方式:utf-8 ,gbk,gb2312....
    

    open

    	open 内置函数,open底层调用的是操作系统的接口
    	f1,变量.  (f1,fh,file,file_handler,f_h)   文件句柄.通过对文件的任何操作都会通过文件句柄. 的方式.
    	encoding:可以不写,不写参数,默认编码本.默认编码本:操作系统的默认的编码
    	****文件句柄****是一个迭代器
    	windows:gbk
    	linux:utf -8
    	mac: ust -8
    	f.close (关闭文件)
    

    open操作文件的三步

    1. 打开文件
    2. 对文件句柄的操作
    3. 关闭文件
    

    报错处理

    1. unicodeDecodeError 错误,编译错误
    2. 路径分隔符产生异议: 路径前面加r
    

    文件的读操作(表示要对文件进行读操作)

    r,rb(bytes模式读),r+(读写),r+b...四种模式
    
    - r
      - read() 全部读取出来
      - read(n) 读取n个字符
      - readline()  读取一行
      - readlines() 返回一个列表,列表中的每个元素是原文件的每一行
      - for i in f.  
    - rb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)
    
    open('文件路径',mode="r",encoding='utf-8')
    

    文件的写操作(表示要对文件进行写操作)

    w,wb,w+,w+b
    
    - w
      - 没有文件创建文件,有文件则先清空.再写入新内容.
    - wb(操作的是非文本的文件[图片,视频,音频],但可以操作文本文件)
    
    open('文件url',mode="w",encoding='utf-8')
    

    文件的追加操作(表示要对文件进行追加操作)

    a,ab,a+,a+b
    
    - a.有文件在原文件追加内容,没文件创建文件.追加内容
    
    open('文件url',mode="a",encoding='utf-8')
    

    文件的其他操作(表示要对文件进行其他操作)

    r+ :读并追加.先读后写.先写后读会导致写的时候光标在最前面.覆盖.所有顺序不能错,必须先读后追加
    

    文件句柄的操作

    read    读所有
    read()    读指定字符
    readline()    读一行
    readlines()   将文件以行的形式全部读出来
    write() 	 将括号内内容写入或者追加进文件
    				--->文件写入时,如果存在该文件会删除文件内内容然后写入,追加则会在末尾追加内容
    
    f=open('文件url',mode="a",encoding='utf-8')
    	f.read   
    	f.readline()
    	......
    

    文件句柄的其他操作

    - tell() 查看光标的当前位置(字节)
    - seek(n)  调整光标的位置     n =0 调整光标到开始.n = -2光标调整到最后
    - flush 强制刷新(保存)  在写的后面一般f.flush()
    

    with open

    - 优点:不用手动关闭文件句柄
    - 优点:可以同时打开多个文件.
    - 缺点:自动关闭文件句柄,当同时操作文件过多时会遇到上一个文件句柄未关闭的情况
    

    清空文件

    关闭文件句柄,再次以w模式打开此文件时,才会清空.
    

    使用python完成文件的修改

    1. 以读的模式打开源文件.
    2. 以写的模式创建一个新文件
    3. 将原文件的内容读出来修改成新内容.写入新文件.
    4. 将原文件删除.
    5. 将新文件重命名为原文件.
    
    import os
    with open("alex",encoding="utf -8") as f1,
        open("alex1",encoding="utf8",mode="w")as f2:
        for a in f1:
            lin = a.replace("SB","sb")
        	f2.write(lin)
        	
    os.remove("alex")
    os.rename("alex1","alex")
    
  • 相关阅读:
    第5章 继承
    第4章 对象和类
    第3章 java的基本程序设计结构
    Java读写properties格式配置文件
    Net学习日记_三层_2
    Net学习日记_三层_1_登录页面总结篇_残缺版
    Net学习日记_三层_1
    Net学习日记_SQL进阶_2
    Net学习日记_SQL进阶_1
    Net学习日记_ADO.Net_3_案例
  • 原文地址:https://www.cnblogs.com/luyi84895838/p/11725541.html
Copyright © 2011-2022 走看看