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

    文件打开操作有两种方式:

    open("绝对/相对路径",mode="读写模式",encoding="编码格式")

    模式共有,r,r+,w,w+,a,a+,(操作字符)以及b模式(操作字节)

    1 f = open("文件",mode="r",encoding="utf-8")             #需要手动close()文件,否则继续操作会报错
    2 with open("文件","w+",encoding="utf-8") as f:     #操作完会自动关闭文件

    r和r+模式:

    只读模式,从文件开头读取,不能写入,会报错

    1 with open("文件","r",encoding="utf-8") as f:     #操作完会自动关闭文件
    2     print(f.read())
    3     f.write("这句话已经写入了!")

    结果对照:

    1 "D:Program Filespython.exe" D:/学习/文件.py
    2 这是一个实验文件!!
    3 Traceback (most recent call last):
    4   File "D:/学习/文件.py", line 4, in <module>
    5     f.write("这句话已经写入了!")
    6 io.UnsupportedOperation: not writable      #不能写入

    读写模式,光标最开始在文件头部,如果直接写入会替换现有文件...先读后写才会写入文件末尾

    with open("文件","r+",encoding="utf-8") as f:     #操作完会自动关闭文件
        print(f.read())
        f.write("这句话已经写入了!")            #光标,开始是在文件头部,如果直接写入,会替换现有字符...先读后写是在末尾追加.

    结果对照:

    1 这是一个实验文件!!这句话已经写入了!

    w和w+模式:

    只写模式,只能写入,读取会报错,#注意每次打开都会先清空现有文件内容

    1 with open("文件","w",encoding="utf-8") as f:     #操作完会自动关闭文件
    2     f.write("这句话已经写入了!")
    3     print(f.read())

    结果对照:

    1 Traceback (most recent call last):
    2   File "D:/学习/文件.py", line 4, in <module>
    3     print(f.read())
    4 io.UnsupportedOperation: not readable

    写读模式,光标默认为文件头部,每次打开都会清空文件现有内容

    1 with open("文件","w+",encoding="utf-8") as f:     #操作完会自动关闭文件
    2     print(f.tell())
    3     f.write("这句话已经写入了!")
    4     f.seek(0)
    5     print(f.read())

    结果对照:

    1 0
    2 这句话已经写入了!

    a和a+,追加模式:

    追加,只能写不能读,读取会报错,光标默认在文件末尾

    1 with open("文件","a",encoding="utf-8") as f:     #操作完会自动关闭文件
    2     print(f.tell())
    3     f.write("这句话已经写入了!")
    4     f.seek(0)
    5     print(f.read())

    结果对照:

    1 25
    2 Traceback (most recent call last):
    3   File "D:/学习/文件.py", line 6, in <module>
    4     print(f.read())
    5 io.UnsupportedOperation: not readable

    追加读写,光标默认在文件末尾,

    1 with open("文件","a+",encoding="utf-8") as f:     #操作完会自动关闭文件
    2     print(f.tell())
    3     f.write("这句话已经写入了!")
    4     f.seek(0)
    5     print(f.read())

    结果对照;

    1 0
    2 这句话已经写入了!

     文件操作汇总:

     1 with open("文件","a+",encoding="utf-8") as f:     #操作完会自动关闭文件
     2     print(f.tell())    #查看光标位置,汉字占三个字符,,
     3     print(f.seek(0))   #操作光标,一个参数0,为移动到文件头.两个参数(0,0)移动到文件头部,(0,1)维持现状(0,2)移动到文件末尾
     4     print(f.write(""))    #写入操作,可以给参数(要写入的内容),返回写入的字符数
     5     print(f.read())         #一次性读取文件,文件较大时比较耗内存
     6     print(f.readline())     #读取一行,返回字符串类型
     7     print(f.readlines())    #一行行读取,但是读取所有内容,返回列表每个元素为每行的字符
     8     print(f.close())        #关闭文件
     9     print(f.flush())        #刷新,防止有残留未写入的内容
    10     print(f.truncate())       #截断,返回光标位置.给定参数(光标位置),从光标位置开始截断.默认光标位置与读写模式有关

     os模块下的常用操作:

    1 import os
    2 # os.remove()             #删除文件
    3 # os.rename()             #修改文件名,前面是旧文件,后面是新文件
    4 #print(os.name)           #现实操作系统,nt为windows,
    5 #print(os.getcwd())        #当前文件夹路径
    6 #print(os.path.abspath("文件"))    #查看文件的绝对路径
  • 相关阅读:
    【.net】从比较两个字节数组谈起
    不靠谱招聘信息大围观 第一季
    微软社区大课堂招募学生
    [WPF]带下拉列表的文本框
    SVN: is scheduled for addition, but is missing
    bootstrap模态框手动开启关闭与设置点击外部不关闭
    PHP实现各种经典算法
    使用vue如何默认选中单选框
    vue使用resource传参数
    视频处理工具FFmpeg的安装(windows/Linux)
  • 原文地址:https://www.cnblogs.com/NoteBook3013/p/10234952.html
Copyright © 2011-2022 走看看