zoukankan      html  css  js  c++  java
  • 文件操作

    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)
  • 相关阅读:
    NLP Best Practices
    Bert模型精简方法
    delphi:对象的创建(create)与释放(free/destory)(转载)
    delphi:Format格式化函数(转载)
    delphi:destroy, free, freeAndNil, release用法和区别(转载)
    delphi:function ParamStr(i:LongInt):string
    jquery:上传文件
    bootstrapValidator中用ajax校验
    jquery中实时监控文本框的变化
    jquery判断checkbox是否选中
  • 原文地址:https://www.cnblogs.com/liangml/p/5953736.html
Copyright © 2011-2022 走看看