• 文件操作


    1.打开文件

    f = open('db','a')#追加
    f = open('db','w')#只写,先清空原文件
    f = open('db','r')#只读
    f = open('db','x')#文件存在,报错,不存在,创建并写内容
    f = open('db','r',encoding='utf-8')#出现encoding时编码错误(平常用utf-8)
    如果加b时读取的是字节(写入时需要转换成字节+编码写入)
    如果参数后带+号表示可读可写

    例:不加b的情况下输出文件(类型为字符串str形式)

    f = open('db','r',encoding='utf-8')
    data = f.read()
    print(data,type(data))
    f.close()
    
    --------------结果----------------
    /usr/bin/python3.5 /home/liangml/pythonscript/test.py
    123  tony
     <class 'str'>

    加b的情况下输出的文件(类型为字节的形式bytes)

    f = open('db','rb',encoding='utf-8')#只要是加b的直接写入字节(都是二进制的)
    data = f.read()
    print(data,type(data))

    ------------------------------------------------
    # f = open('db','ab')
    # f.write(bytes("hello",encoding="utf-8"))#写入是转换成字节
    # f.close()
    ----------------结果-------------- /usr/bin/python3.5 /home/liangml/pythonscript/test.py b'123 tony
    ' <class 'bytes'>
    #如果有加号则表示可读可写
    f = open('db','r+',encoding='utf8')
    #如果模式无b,则read,按照字符读取
    data = f.read()
    print(data)
    print(f.tell())#获取当前指针的位置
    f.seek(1)#主动的调整指针的位置(但是会覆盖)
    f.write('777')
    f.close()

    2.操作文件

    read()#无参数,读全部;有参数
                                1.b,按字节
                                2.无b,按字符
    tell()获取当前指针的位置
    seek(1)指针跳转到指定的位置(字节)
    write()写数据,b,字节;无b,字符
    fileno文件描述符
    flush强刷
    readable查看是否可读
    wirteable查看是否可写
    readline 仅读取一行
    truncate 截断数据,指针位置后的清空
    for循环文件对象 f = open(xxx)
            f = open('db','r+',encoding='utf8')
                for line in f:
                    print(line)

    3.关闭文件

    1.可以通过close来关闭文件

    2.可以通过with方式来关闭文件(with可以同时打开多个文件)

     close方式关闭

    f.close()
    with open('db') as f:
        pass

    with方式来关闭

    with open('db') as f:
        pass
    with open('db','r',encoding='utf-8') as f1,open('db2','w',encoding='utf-8') as f2:#可以同时打开多个文件
        times = 0
        for line in f1:
            times += 1
            if times <=10:
                f2.write(line)
            else:
                break
    with open('db','r',encoding='utf-8') as f1,open('db2','w',encoding='utf-8') as f2:
        for line in f1:
            new_str = line.replace('liangml','st')#replace更换
            f2.write(new_str)
  • 相关阅读:
    hdu4405Aeroplane chess 概率dp水题
    【基础算法】排序-复杂排序之二(找出第K大的数)
    java代码实现输出指定以.java结尾的文件的绝对路径
    算法 Heap sort
    hdu2141Can you find it?
    c/c++:回调函数
    怎样在编译的时候,控制删除apk不用的资源?
    javascript原型的改动与重写(覆盖)区别
    深入理解Tomcat虚拟文件夹
    C++设计模式之代理模式
  • 原文地址:https://www.cnblogs.com/liangml/p/5953736.html
Copyright © 2020-2023  润新知