• 文件操作


    文件操作

    1.什么是文件

      文件是操作系统为应用程序或用户提供的一种硬盘操作的虚拟单位

      强调:文件是操作系统提供的虚拟单位

          应用程序或者用户对文件的读写操作其实都是向操作系统发送指令

    2.为什么要用文件

      文件对应的硬盘空间,如果需要考虑营救保存数据那必须使用文件

    3.如何使用文件

    1.操作文件的流程

      #1.打开文件,得到文件句柄并赋值给一个变量

       绝对路径:win     c:ac       linux:  a/b/c/                 

       相对路径:相对于当前执行文件所在的文件夹为起始位置开始查找

       f=open('test.txt','r',encoding='UTF-8')   #默认以r方式打开

        #2.通过句柄对文件进行操作

         data=f.read()

        #3.关闭文件

       f.close()  向操作系统发送指令,让操作系统关闭打开的文件,回收操作系统资源

      流程分析:#1.由应用程序向操作系统发起系统调用open(....)

           #2.操作系统打开文件,并返回一个文件句柄给应用程序

           #3.应用程序将文件句柄复制给f

    2.打开一个文件包含两部分资源:操作系统级打开的文件+应用程序的变量

     del f 必须在f.close()之后

     上下文管理

     with open() as f,open() as f:

     with open() as f

        pass

    3.python3中操作文件只有一种 open()

     python2中操作文件有file()和open():file()构建文件open()打开文件

    4.打开文件的模式

      文件句柄=open('文件路径','模式')

      #1. 打开文件的模式有(默认为文本模式):

       r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】无论读写都是以字为单位只能操作文本文件

      w,只写模式【不可读;不存在则创建;存在则清空内容】

      a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】

       #2. 对于非文本文件,我们只能使用b模式,不需要指定encoding

      rb

      wb

      ab

      以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

      #3. 了解部分  

      '+'表示可以同时读写某个文件

      r+,读写

      w+, 写读

      a+, 写读

           x 只写不读(不可读,不存在则创建,存在则报错)

      x+ 写读

      xb

    5.操作文件的方法

      掌握:

      f.read()读取所有内容,光标放在文件末尾

      f.readline() 读取一行内容,光标移到第二行末尾

      f.readlines() 读取每一行内容,存放在列表中

      f.write() 针对文本模式的写,需要自己进行换行

      f.write().encode() 针对b模式的写,需要自己写换行符

      f.writelines() 文件模式

      f.writelines([bytes(),encoding='',''.encode()]) b模式

      #了解

      f.readable()文件是否可读

      f.writable()     文件是否可写

      f.closed 文件是否关闭

      f.encoding 如果文件打开模式为b模式,则没有该属性

      f.flush() 立刻将文件内筒从内存刷到硬盘

      f.name

    6.文件内光标移动

      1.read(3)

        文件打开方式为文本模式时,代表读取3个字符

        文件打开方式为b模式时,代表读取3个字节

      2.其余的文件内光标移动都是以字节为单位如seek,tell,truncate

        #1.seek有三种移动方式0,1,2,其中1,2,必须b模式下进行,以bytes为单位进行移动

        #2.truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打        开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果

    7.文件的修改

      文件的数据是存放在硬盘上的,因此只存在覆盖,不存在修改

      方法一:

        将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再    由内存覆盖到硬盘(word,vim,nodpad++等编辑器)

      1.以读的方式打开源文件   2.将文件内容一次性全读入内存,在内存完成修改

      3.以写的方式打开源文件,然后将内容一次性写入到源文件

      方法二:

        将硬盘存放的该文件的内容一行一行地读入内存,修改完毕就写入新文件,最后用新文    件覆盖源文件

    学习,学习,学习! 学习是为了更好的未来,不要让别人瞧不起你,加油!!!
  • 相关阅读:
    使用用Ghost制作的win2k3和winxp文件具有相同的SID的解决办法
    64 bits Windows 7 使用 regsvr32 的註冊方式(转)
    怎么实现用户匿名访问web,但数据库要用Windows集成验证方式(数据库和web服务器分别在两台机器上)
    为什么按照微软给定的匿名配置Web 同步最终造成创建订阅的步骤总是失败?但改为需要身份验证就行了
    How to edit Team Build Types
    利用WhiteHose一步步建立分布式系统的框架(二)创建LDD步骤
    发现:InfoPath 2007 Training Labs地址
    在MSF中怎么区分易混淆的工作项类型:Bug、风险和问题(我个人的理解)
    RGB Colour Map
    How to distinguish Design time or Running time in Mobile cusotmer Contorl(the NetCF2.0 is different to NetCF1.0)
  • 原文地址:https://www.cnblogs.com/yangyufeng/p/9997731.html
Copyright © 2020-2023  润新知