• 19/03/30Python笔记


    一.三元运算

    a = 1 if (条件) else a = 2  #如果条件成立,a = 1,否则a = 2

    二.文件的处理

    1.读取

    f = open("user.txt","r",encoding="utf-8")    #utf-8解码以只读的方式打开文件
    
    print(f.read())
    
    f.close

    r:文本模式,把二进制转换为文本

    rb:b代表binary,二进制的意思,用rb模式读取的话就是以什么编码存入的就以什么编码读取出来(一般二进制用于网络传输)

    当不确定以什么编码可以下载第三方模块,之后用import调用

    安装

    pip3 install chardet

    使用chardet

    import chardet
    
    f = open("user.txt","rb")    #一定以rb模式打开
    
    data = f.read()
    
    
    chardet detect(data)           #按一定规则预测编码类型

    2.写入(若之前存在user.txt文件,用此方法会完全覆盖)

    f = open("user.txt","w",encoding="utf8")  #以字符串的形式打开文件
    
    f.write("啦啦啦")
    
    f.close
    f = open("user.txt","wb",)       #如果没有user.txt文件的话,会创建一个
    
    f.write(“啦啦啦”.encode("utf-8"))  #.encode把之前的字符串转化为byte
    
    f.close

    wb二进制模式不能encoding

    3.追加

    f = open(“user.txt","ab")        
    
    f.write("
    啦啦啦".encode("utf-8"))    #
    用于换行
    
    f.close
    f = open("user.txt","a",encoding="utf-8")
    
    f.write("
    lalala")
    
    f.close

    注意:

    f = open("user.txt","a",encoding="utf-8")
    
    f.write("lalala")
    
    print(f.read)

    f.close

    此时print出来的一定是空白,可以理解为a添加文件后,也把光标后移了,而read读取的是光标后面的内容,所以只会显示空白

    4.读写模式(相当于以读的模式打开,支持写)

    f = open("user.txt","r+",encoding="utf-8")
    
    f.write("lalala")

     w、a只可以写而不可以读,而r只可以读,使用r+就可以实现读写的功能,类似r和a的功能

    5.写读模式(相当于以写的模式打开,支持读)

    f = open("user.txt","w+",encoding="utf-8")
    
    f.write("lalala")

    和读写不同的是,会覆盖掉原来文件中的内容

    6.其他功能

    1)

    flush() 方法是用来把文件从内存buffer(缓冲区)中强制刷新到硬盘中,同时清空缓冲区。

    输入数据时,数据会先存到内存里,在buffer满时会写到硬盘中,或者关闭文件时会自动写到硬盘中,但是如果输入比较重要的字符时,需要每写一个都存到硬盘中,这样就需要用到flush()功能

    2)

    f.readline()

    读取文件时每次只读一行

    3)

    seek() 方法

    f.seek(offset[, whence])

    offset -- 开始的偏移量,也就是代表需要移动偏移的字节数

    whence:可选,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

    此方法理解为可以移动光标,按字节取,比如

    f = open("test.txt","r+",encoding="utf-8")
    
    f.write("博客园")
    
    f.seek(3)     #用utf-8编码一个汉字占3个字节,f.seek(3)相当于把光标移动到了第一个字后
    
    f.tell()          #输出为3,输出当前光标的位置

    注意:

    f = open("test.txt","r+",encoding="utf-8")
    
    f.write("博客园")
    
    f.seek(2)  
    
    f.readline()

    此时用readline()会报错,因为一个汉字3个字节

    4)

    f.truncate()

    从头开始向前截取,括号参数为截取位数

  • 相关阅读:
    [重回VB6]简单的QQWeb网游辅助工具开发之旅1、序言,另类的QQ登陆方法
    QQ和360大战我的观点
    不用IE Test ,快速对IE兼容性进行测试
    第八届软件设计大赛完全作品赛前评析与剧透
    屌丝如何分发大文件(大于1G)
    NetDog 酷炫版 0.1测试版发布
    Jquery制作的页码插件
    使用Html5+CSS3摆脱JS做带提示文字的输入框
    在nhibernate中,Load相同ID的实体对象的时候出错的问题!
    fieldset,legend
  • 原文地址:https://www.cnblogs.com/sunj-96/p/10629315.html
Copyright © 2020-2023  润新知