zoukankan      html  css  js  c++  java
  • Python-文件处理

    一、在 Python 中使用文件的关键函数是 open() 函数。open() 函数有两个参数:文件名(file)和模式(access_mode)

    access_mode参数有:
    r : 以只读方式打开文件。文件的指针将在文件开头。这是默认模式。
    rb: 以二进制格式打开一个文件用于只读。一般用于非文本文件如图片等
    r+ : 打开一个文件用于读写(文件的指针将在文件开头)
    w : 打开一个文件只用于写入,如果文件存在,删除重新编辑,否则新建
    wb : 以二进制格式打开一个文件只用于写入
    w+ : 打开一个文件用于读写。如果文件存在,删除重新编辑,否则新建写入
    a : 打开文件追加内容,存在文件,在文件原内容后增加,否则新建写入
    a+ : 打开一个文件用于读写。存在文件,在文件原内容后增加,否则新建用于读写
    ab : 以二进制格式打开一个文件用于追加,存在文件,在文件原内容后增加,否则新建写入
    ab+ : 以二进制格式打开一个文件用于读写。存在文件,在文件原内容后增加,否则新建用于读写

    #往文件写入数据
    file.write(string) #可将任何字符串写入一个打开的文件
    file.flush() #刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件
    file.close() #刷新缓冲区里任何还没写入的信息,并关闭该文件

    #读取文件内容
    file.read([u'读取字符长度']) #从一个打开的文件中读取一个字符串
    file.close() #刷新缓冲区里任何还没写入的信息,并关闭该文件。

    #其他与文件相关的方法:
    file.tell() #告诉你文件指针的当前位置
    file.seek(offset=10,whence=2)
    #改变当前文件指针的位置。必须以二进制方式打开的文件。offset表示要移动的字节数
    #whence变量指定开始移动字节的参考位置。如果whence为0,将文件的开头作为移动字节的参考位置。如果
    #设为1,则使用当前的位置作为参考位置。如果为2,那么该文件的末尾将作为参考位置
    • 创建新文件

    f = open("myfile.txt","x")    #创建,创建一个空的新文件
    
    f2 = open("myfile1.txt","w")   #写入,如果文件不存在,则创建新文件
    
    f3 = open("myfile3.txt","a")   #追加,如果文件不存在,则创建新文件  
    • 读取文件

    with open("test.txt","r",encoding="utf-8") as file:
        print(file.tell())
        # 改变指针位置,读取中间部分内容
        file.seek(6,0)  #以文件开头开始,改变指针移动六个字节
        print(file.tell())      #现在指针指在第六个字节处
        print(file.readline())   #一行一行打印,将指针所在的这行打印出来
        print(file.read(5))     #指定要返回的字符数("n基础"-一个中文等于两个字节)
        print(file.read())     #从指针所在位置后的内容全部打印出来
        print(file.tell())    #指针在内容最末端
    #注:指针位置影响最终获取到的值:如果先写入再读,指针在最后一位,容易读不到文件内容
    • 写入文件

    #例一:
    str1= '''
    Python基础
    接口自动化
    web自动化
    app自动化
    '''
    file4 = open(file='test.txt',mode='w',encoding='utf-8')
    print(file4.write(str1))
    file4.close()
    
    #例二:
    html = '''
    <html>
    <body>
    
    <h1>我的第一个标题</h1>
    
    <p>我的第一个段落。</p>
    
    </body>
    </html>
    '''
    file1 = open(file='test.html',mode='w')   #删除原内容再写入(覆盖原内容)
    print(file1.write(html))
    file1.close()
    • 追加文件

    file2 = open(file='test.html',mode='a')   #在原文内容后追加
    #print(file2.write("my name is vv"))
    
    file3 = open(file='test.html',mode='a+')   #用于读写,在原文内容后追加
    #print(file3.write("python is so easy"))
    • 删除文件

    import os
    # os.remove('myfile.txt')     #当文件不存时容易报错
    # f = open('myfile.txt','x')
    
    #检查文件是否存在
    if os.path.exists('myfile.txt'):
        os.remove('myfile.txt')
    else:
        print("未找到该文件")
    
    #删除整个文件夹
    # os.rmdir('a')      #只能删除空文件
    
    print(os.getcwd()); #返回当前工作目录
    file0 = '/Users/vv/PycharmProjects/untitled3.9/functions/B'
    os.mkdir(path=file0,mode=755);
    •  os.path模块详解

    #os.path模块
    file0 = '/Users/vv/PycharmProjects/untitled3.9/functions/B'
    print(os.path.abspath('.'))     #返回当前文件的绝对路径
    print(os.path.getatime('.'))   #返回最近一次访问文件的时间
    print(os.path.getctime('./B'))
    print(os.path.basename(file0))    #返回: B
    #返回文件名
    print(os.path.dirname(file0))
    #返回文件夹的路径:/Users/vv/PycharmProjects/untitled3.9/functions
    
    print(os.path.split(file0))
    #返回文件夹与文件名的元祖存储模式:('/Users/vv/PycharmProjects/untitled3.9/functions', 'B')
    
    print(os.path.join(file0,'test'))
    #返回拼接:/Users/vv/PycharmProjects/untitled3.9/functions/B/test
    
    import time
    print(time.gmtime(os.path.getmtime(file0)))
    #返回时间: time.struct_time(tm_year=2021, tm_mon=7, tm_mday=23, tm_hour=6, tm_min=26, tm_sec=32, tm_wday=4, tm_yday=204, tm_isdst=0)
    • 总结:使用with open() as file,这种语法如果出现错误不需要再次关闭文件

    三十六般武艺,七十二般变化,修练出个人品牌并发出光芒
  • 相关阅读:
    死锁
    面试题: JVM的四大引用
    面试题:对象怎么定位
    面试题: Spring框架的好处
    VTK 图形基本操作进阶_表面重建技术(等值面提取)
    VTK 图形基本操作进阶_表面重建技术(三角剖分)
    VTK 图形基本操作进阶_多分辨率策略(模型细化的三种方法)
    VTK 图形基本操作进阶_多分辨率策略(模型抽取的三种方法)
    VTK 图形基本操作进阶_连通区域分析
    VTK 图形基本操作进阶_网格模型的特征边 与 封闭性检测
  • 原文地址:https://www.cnblogs.com/deeptester-vv/p/15048368.html
Copyright © 2011-2022 走看看