zoukankan      html  css  js  c++  java
  • Python的学习之旅———文件处理

    python 是一个应用程序 应用程序是无法直接调用硬件的,要通过操作系统来调用硬件.

    1. 打开文件,得到文件句柄并赋值给一个变量 f=open (,'r')
    2. 通过句柄对文件进行操作  f.read 
    3. 关闭文件   f.close


    encode 编码(utf-8,GBK,)到字节B
    decode b到编码(utf-8,GBK)
    py打开一个文件实际上是打开了两个文件 (操作系统打开了一个,py还打开一个)
    with关键字来帮我们管理上下文
    with open('a.txt','w') as f:
        pass
    r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
    w,只写模式【不可读;不存在则创建;存在则清空内容】
    a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】
    

      对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式)

    rb    wb   ab

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

    "+" 表示可以同时读写某个文件   r+, 读写【可读,可写】 w+,写读【可读,可写】 a+, 写读【可读,可写】

    x, 只写模式【不可读;不存在则创建,存在则报错】 x+ ,写读【可读,可写】   xb

    f.read() #读取所有内容,光标移动到文件末尾

    f.readline() #读取一行内容,光标移动到第二行首部

    f.readlines() #读取每一行内容,存放于列表中 每一个列表中元素以 结尾.

    f.write('aaa bbb ') #针对文本模式的写,需要自己写换行符

    f.write('aaa bbb '.encode('utf-8')) #针对b模式的写,需要自己写换行符.还要转换成字节串

    f.writelines(['ccc ','ccc ']) #文件模式 参数是序列

    f.writelines([bytes('ccccc ',encoding='utf-8'),'dddd '.encode('utf-8')]) #b模式

    一: read(3):

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

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

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

    注意:

      1. seek有三种移动方式0,1,2,但无论哪种模式,都是以bytes为单位移动的

             0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

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

  • 相关阅读:
    docker部署spring boot并接入skywalking【探索篇】
    转载:如何处理一个CVE漏洞?
    转载:JavaScript利器分享之Proj4js
    转载:geoserver 2.18.0 跨域配置
    转载:如何实现OSM地图本地发布并自定义配图
    wsl2搭建ElasticSearch集群
    测试方法
    测试用例
    软件测试分类
    前端html
  • 原文地址:https://www.cnblogs.com/surehunter/p/7551190.html
Copyright © 2011-2022 走看看