• python day08


    ascii码转换成字符:chr()

    字符串转换成ascii:ord()

    三种字符串

    1、普通字符串  --以字符作为输出单位

      print(u'abc')  显示给用户看的字符串

    2、二进制字符串  --以字节作为输出单位

      print(b'xe4xbdx95xe8x8bx8fxe5x81xa5')   用于传输用

    3、原义字符串  --以字符作为输出单位,所有普通字符串以原义输出

    print('run again stop') 

    print(r'run again stop')     取消转义    不会自动换行,保持原字符串

    文件操作的三步骤

    1、打开文件  硬盘空间被操作系统持有,文件对象被应用程序持有

      f = open('a.txt','r',encoding='utf-8')

    2、对文件进行操作  

      date = f.read()

    3、关闭文件  释放文件(释放操作系统对硬盘空间的持有)

      f.close()

    文件基本的读

    f = open('a.txt','r',encoding='utf-8')

    date = f.read()    -->一次性把所有文件都读出来

    date = f.read(10)   -->一次读十个字符 

    date = f.readline()    -->一次读一行

    date = f.readlines()  -->分行一次性读出来,换行标识作为换行依据,存在同一个列表里。

    f.close()

    文件基本的写

    w = open('a.txt','w',encoding='utf-8')

    w.write('abc')    -->直接写入文件

    w.flush()         -->将文件保存到文件夹

    w.write('opq rst')   -->遇到换行标识就会自动换行

    w.writelines(list)      -->一次添加多行,多行内容必须添加在同一个列表里,并且要标上标识符

    w.close()      -->1、将文件保存到内存中   2、释放硬盘空间

    with…open()语法

    为了整合优化文件资源的打开与释放

      --在with的缩进内操作文件,一旦退出缩进,就会释放硬盘空间

    part1:

    with open('a.txt','r',encoding='utf-8') as f:

      date = f.read()  #进行一些对文件的操作指令

    #一旦退出缩进,硬盘空间就被释放

    part2

    with open('a.txt','r',encoding='utf-8') as f,open('b.txt','r',encoding='utf-8') as v:  #同时打开两个文件

      #对两个文件的操作

    part3:

    with open('a.txt','r',encoding='utf-8') as f:

      with open('b.txt','r',encoding='utf-8') as v:

        date = f.read()

        date = v.read()

      date = f.read()  #可以进行操作

      date = v.read()  #不可以操作

    文件的操作模式

    主模式  r  |  w  |  a  |  x

    从模式  t  |   b  |  +

    r:只能读取已经存在的文件,不存在就报错

    w:如果文件存在,就先清空再写,如果文件不存在,就新建再写

    a:如果文件存在,就在文件内容的末尾继续添加写,如果文件不存在,就新建再写

    x(了了解):只能新建文件再写,如果文件存在就报错

    t:默认的从模式,以字符进行操作

    b:以字节进行操作

    +:可读可写

    rt:文件必须存在,不存在就报错,文件操作采用字符方式,简写r

    wt:文件可以存在,也可以不存在,存在则清空再写入,不存在则创建写入,文件操作采用字符方式,简写w

    at:文件可以存在,也可以不存在,存在则再文件内容末尾进行添加,不存在则创建写入,文件操作采用字符方式,简写a

    rb:文件必须存在,不存在就报错,文件操作采用字节方式

    wb:文件可以存在,也可以不存在,存在则清空再写入,不存在则创建写入,文件操作采用字节方式

    ab:文件可以存在,也可以不存在,存在则再文件内容末尾进行添加,不存在则创建写入,文件操作采用字节方式

    r+t:文件必须存在的可读可写,默认从头开始替换写,文件操作采用字符方式

    w+t:可读可写,文件存在则先清空再写,文件不存在就先创建再写,文件操作采用字符方式

    a+t:可读可写,文件存在则在文件内容末尾追加写,文件不存在就先创建再写,文件操作采用字符方式

    r+b:文件必须存在的可读可写,默认从头开始替换写,文件操作采用字节方式

    w+b:可读可写,文件存在则先清空再写,文件不存在就先创建再写,文件操作采用字节方式

    a+b:可读可写,文件存在则在文件内容末尾追加写,文件不存在就先创建再写,文件操作采用字节方式

    文件操作编码问题

    1、在t模式下:文件保存采用什么编码,打开就用什么编码打开,不然会出现乱码,如果不写编码,就会用系统默认编码

      所以t模式下一定要指定编码--什么编码写,什么编码打开

    2、在b模式下:硬盘文件保存的是二进制的字符串形式,写入也是提前编写好的二进制文件,电脑可以识别编码

      所以b模式下不需要去指定编码

    文件的复制

    with open('a.txt','r',encoding='utf-8') as rf:  #通过采用字符操作复制

      with open('b.txt','w',encoding='utf-8') as wf:

        for line in rf

          wf.write(line)  #可以把a文件一行一行的读出来并复制到b文件里

    with open('a.txt','rb') as rf:  #通过采用字节操作复制

      with open('b.txt','wb') as wf:

        for line in rf

          wf.write(line)

    游标操作

    只有在r模式下才可以进行游标操作(游标操作的是字节)

    with open('a.txt','rb') as rb:

      date = rb.read(10)

      f.seek(2,0)   #seek(offset,whence)    offset   前面的是游标移动的字节数,正数表示向后移动,负号表示向前移动。  

            逗号后面的数字在b模式下可以为0、1、2

            whence    0:游标置到开头  1:游标置到当前位指  2:游标置到末尾

    # 你是日本人
    with open('target.txt', 'rb') as f:
    # 先读6个字节
    data = f.read(6)
    print(data.decode('utf-8')) # 你是
    # 将游标从头开始往后偏移3个字节
    f.seek(3, 0)
    data = f.read(6)
    print(data.decode('utf-8')) # 是日
    # 从当前游标位置往前偏移3个字节
    f.seek(-3, 1)
    data = f.read(3)
    print(data.decode('utf-8')) # 日

    f.seek(-3, 2)
    data = f.read(3)
    print(data.decode('utf-8')) # 人

  • 相关阅读:
    Programmatically parsing Transact SQL (TSQL) with the ScriptDom parser
    How to check for a valid Base64 encoded string
    三角函数和反三角函数
    Preventing User Enumeration on Registration Page
    创建HyperV虚拟机安装Win10教程详解
    爆强,看看PS高手怎么变出一个美女来
    用baidu搜索“sb”会出来什么结果?baidu也太狠了吧
    一组Opeth(月亮之城)的现场视频
    为了节约成本,要在西游记团队中栽一个你会裁掉哪位?
    Ruby on rails开发从头来(windows)(四)第一个添删查改例子
  • 原文地址:https://www.cnblogs.com/hesujian/p/10753187.html
Copyright © 2020-2023  润新知