• Python:文件操作


    按照文件组织的形式,python文件可以分为文本文件和二进制文件

    文本文件的每一个字节放一个ASCii码,代表一个字符。二进制文件把内存中的数据按照在内存中的存储形式原样 输出到磁盘上存放。

    打开与关闭文件:open()、close()

    格式:文件对象=open(文件说明符[,打开方式][,缓冲区])

    f = open("c:\a.txt""r"#以读的形式打开文件
    #注意文件目录一定要用双\

    打开方式: r w a rb wb ab r+ w+ a+ rb+ wb+ ab+

    r 方式只能从内存中输出数据 不能像内存中添加数据

    w 只能从内存向该文件写数据 不能从文件向内存输入数据

    a 添加 注意当前位置是文档末尾

    r+ w+ a+ 可以写入和读取

    文件属性:

    f = open("file.txt","wb")
    
    #获取文件名
    f.name         # file.txt
    
    #获取文件打开的方式
    f.mode         # "wb"
    
    #获取信息:文件是否关闭了
    f.closed       # False
    
    #关闭文件
    f.close         

    读写操作

    读操作

    read()

    • 变量 = 文件对象.read() 变量 = 文件对象.read([count])
    • re从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
    '''
    kk.txt 里面内容:abcdefghijklmn
    '''
    # 打开文件
    fo = open("kk.txt", "r+")
    str = fo.read(10);
    print ("读取的字符串是 : ", str)
    # 关闭打开的文件
    fo.close()
    
    #输出
    读取的字符串是 :abcdefghij 

    readline()

    • 读取当前位置到行末的所有字符,包括行结束符
    • 变量=文件对象.readline() 当处于文件末尾 则返回空串 " "

    readlines()

    从当前位置直到文件末尾的所有行 将所有行构成列表返回值

    写操作

    write()

    • 在当前位置写入字符串,并返回字符的个数
    • 文件对象.write(字符串) write()执行后并不会自动换行,如果需要换行可以加入
    f = open("kk.txt", "wb")
    f.write( "ya this is kumata!
    you know,heyo");
     
    # 关闭打开的文件
    f.close()
    #linux环境下
    
    $ cat kk.txt 
    ya this is kumata!
    you know,heyo

     writelines()

    • 在当前位置依次写入列表中的所有字符串
    • 文件对象.writelines(字符串的元素列表)

    二进制文件操作

    文件的定位   

    文件对象.tell():  返回当前位置

    文件对象.seek(偏移[,参考点])      ,seek例子见 CSDN:seek()

    struct模块

    pack() 把整型号和浮点型打包为二进制的字符串。

    unpack()二进制打包成整型号浮点型

    pickle模块:把对象腌制成二进制文件存储

    dump()                  pickle.dump(数据,文件对象)

    import pickle
    list = ['12','34','ok','很好']
    f = open("D:kk.pkl","wb")  #二进制写入
    pickle.dump(list,f)
    f.close()

    os模块

    #文件重命名 rename() 
    os.rename("当前文件名“,”新文件名“)
    
    #文件删除 remove() 
    os.remove("文件名")
    
    #在当前目录创建目录 
    os.mkdir("新的目录名“)
    
    #改变当前目录
    os.chdir("目录“)
    
    #得到当前目录
    os.getcwd()
    
    #删除空目录 
    os.rmdir("待删除的目录 ")

     

  • 相关阅读:
    maven~nexus开启游客下载
    springboot~thymeleaf为vue传递模型
    uppy实现断点续传
    skywalking的介绍
    springboot~disruptor异步队列
    [翻译]——Accelerated Database Recovery; Instant Rollback and Database Recovery
    SQL Server什么时候启用“锁定内存页”选项 (Windows)
    ORACLE重编译同义词(synonym)遇到ORA-01031总结
    杂想闲思录——你的努力付出可能毫无价值可言!
    CentOS 7下MySQL Sniffer安装总结
  • 原文地址:https://www.cnblogs.com/kumata/p/9395344.html
Copyright © 2020-2023  润新知