zoukankan      html  css  js  c++  java
  • 第十五篇 文件操作延申

    第十五篇 文件操作延申

    1 绝对路径和相对路径

    绝对路径

    • Windows系统的绝对路径从盘符(例如:C: 或者 D: 等等)开始写一个完整的路径
    • Macos系统从根目录(/Users)开始写一个完整的路径

    相对路径

    • 相当于当前执行文件所在的文件夹开始找
    file = open('txt') #txt与该.md文档路径位置相同
    

    2 文件打开模式

    • 文件操作的基础模式有三种(默认的操作模式为r模式)

      • r 模式为 read():只读模式,文件不存在时会报错。注意:read()读取文件指针会跑到文件的末端,如果再一次读取,读取的将是空格
      file = open('txt','r')
      data1 = file.read()
      data2 = file.read()
      print(data1)
      print(data2)  #这次读取的内容是空白的
      

      ###由于f.read()一次性读取文件的所有内容,如果文件非常大的话,可能会造成内存爆掉,即电脑卡死。因此可以使用.readline()/.readlines()读取文件内容

      readable()可以判断文件是否可读

      file = open('txt','rt') #‘rt’为读取的文件类型是text
      print(f.readable())     #判断文件是否可读,返回值是True or False
      '''结果是:True'''
      data1 = file.readline()   
      data2 = file.readlines()
      '''注意:如果文件中没有分行,readline()函数任然会将全部内容读取完,只有当文件中有分行时,才会分段输出。如果readlines()先输出,即使文件内的信息有分行也会全部输出'''
      print(data1)
      print(data2)
      
      • w 模式为 write():只能写,不能读,而且写的时候会覆盖文件打开之前的内容
      ###可以用readable()函数验证一下
      file = open('txt','w') 
      print(f.readable())  
      '''结果是:False'''
      
      • a 模式为 append():追加。文件存在,则在文件的末端写入内容;文件不存在的时候会创建文件后写入内容
      ###可以用readable()函数验证一下是否可读
      file = open('txt','a') 
      print(f.readable())  
      '''结果是:False'''
      
    • 文件读写内容的格式有两种(默认的读写内容的模式为wb/rb/ab模式)

      注意:t 、b这两种模式均不能单独使用,都需要与r/w/a之一连用

      • b 模式(bytes):通用模式,因为所有的文件在硬盘中都是以二进制的形式存储的,所以可以通用。注意:b模式读写文件,一定不能加上encoding参数,因为二进制无法再编码,如果加了则会报错
      file = open(r'B:pythonstudyday4	xt',mode='wb') '''一定不能写encoding的参数'''
      file.write('data')
      file.close()
      
      • t模式(text):文本模式,用于打开txt格式的文件
      file = open(r'B:pythonstudyday4	xt',mode='rt',encoding='utf-8')
      data = file.read()
      print(data)
      file.close
      

    3 with 管理文件操作上下文

    ## 之前我们使用open()方法操作文件,但是open打开文件后我们还需要手动释放文件对操作系统的占用。但是其实我们可以更方便的打开文件,即Python提供的上下文管理工具——with open()

    with open('B:pythonstudyday4\txt','r',encoding='GBK') as file:
        print(file.read())
        '''这样我们就不需要手动关闭文件了'''
    

    ### with open()方法不仅提供自动释放操作系统占用的方法,并且with open可以使用逗号分隔,一次性打开多个文件,实现文件的快速拷贝

    with open('txt','rb') as file,
    	open('txt1','wb') as file1:
            file1.write(file.read())
    with open('txt1','rb') as file1:
        print(file.read())
    
    

    提醒:在复制路径时,很容易碰到 、 、 这些转义字符,我们可以在输出它们的时候加上 r 或者在斜杠旁边加一道斜杠(反斜杠)来保证它们原样输出

    file = open(r'B:pythonstudyday4	xt',mode='wb')
    #或者写成
    file = open(r'B:pythonstudyday4\txt',mode='wb')
    #这样都可以避免出现报错
    
    
  • 相关阅读:
    IE input X 去掉文本框的叉叉和密码输入框的眼睛图标
    vue监听滚动事件 实现某元素吸顶或者固定位置显示
    判断滚动条到底部的JS逻辑
    vue plugin 插件编写以loading为例
    Maven使用yuicompressor-maven-plugin打包压缩css、js文件
    AngularJS 用 Interceptors 来统一处理 HTTP 请求和响应
    jQuery mouseover与mouseenter,mouseout与mouseleave的区别
    angular内ng存在属性是专门用来解决跨域问题的,$sce
    dede上怎么让所有链接在新窗口打开
    dede文章页调用当前栏目链接方法
  • 原文地址:https://www.cnblogs.com/itboy-newking/p/10853674.html
Copyright © 2011-2022 走看看