zoukankan      html  css  js  c++  java
  • Python学习杂记_7_文件操作

    文件操作

    Python3用open()方法打开文件并返回文件句柄,有了文件句柄就可以对文件进行各种操作了。

    打开文件:

    open(“文件名” , 打开方式)            如: f=open(“file.txt”, ‘r’)

    # 文件名通常是文件全名,即有路径和扩展名的文件名,如果没有写路径默认为当前路径

    # 打开方式决定了文件打开后的状态及如何操作:

    r                 # 只读方式(默认的模式,打开的文件不存在会报错)

    w               # 只写方式(不可读,文件不存在则创建,存在则清空内容)

    a                # 追加写方式(不可读,文件不存在则创建,存在则追加内容)

    r+               # 可读、可写;可追加,如果打开的文件不存在的话,会报错

    w+             # 写读模式,存在的文件内容会被清空,可以读到已经写的文件内容

    a+              #追加读写模式,不存在则创建;存在则只追加内容

    文件操作的常用方法:

    f = open('file.txt','r+',encoding='utf-8')    #encoding参数可以指定文件的编码

    f.readline()                 # 读一行,返回数据的类型为‘字符串’

    f.readable()                # 判断文件是否可读

    f.writable()                 # 判断文件是否可写

    f.encoding                  # 返回文件的编码

    f.read()                        # 读取所有内容,返回数据的类型为‘字符串’

    # 大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆

    f.readlines()               #读取所有文件内容,返回数据的类型是‘列表’,元素是每行的数据,大文件时不要用

    # 因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆

    f.tell()                          # 获取当前文件的指针指向

    f.seek(0)                     # 把当前文件指针指向哪

    f.write('爱情证书')  # 写一个字符串到文件

    f.writelines([‘123’,’456’,’789’])                  # 写一个列表到文件

    f.fulsh()                       #写入文件后,立即从内存中把数据写到磁盘中

    f.truncate()                #清空文件内容

    f.close()                       # 关闭文件

    高效读取文件的方法,是利用循环遍历读取文件的行:

    f = open('file.txt')

    for line in f:

      print(line)

    # line是每行文件的内容,读完一行,就会释放一行的内存

    使用with结构:

    文件操作结束后需要关闭文件释放系统资源,但关闭文件常常会被忘记,使用whith方法后文件会被自动关闭。

    #打开一个文件,把这个文件的句柄付给f

    with open('file.txt','r') as f:               

    for line in f:

                 print(line)

    #这个是多文件的操作,打开两个文件,fr是读file.txt,fw是新建一个file_bak文件

    with open('file.txt') as fr,with open('file_bak','w') as fw:                   

    for line in fr:                       # 循环file.txt中的每一行

                 fw.write(line)               #写到file_bak文件中

  • 相关阅读:
    LDMIA、LDMIB、LDMDB、LDMDA、STMIA、LDMFD、LDMFA、LDMED、LDMEA指令详解
    汇编:MSR/MRS/BIC指令
    leetcode 题库解答
    70个Python练手项目
    idea+maven+Strtus2 之新建工程
    java中利用StringEscapeUtils对字符串进行各种转义与反转义
    springboot+springcache+shiro+Redis整合时@Cacheable、@Transactional等注解失效的问题
    springboot+springCache+Redis声明式缓存
    SpringBoot与Mybatis整合之Junit单元测试
    RabbitMQ在Windows中的安装
  • 原文地址:https://www.cnblogs.com/victory-0315/p/8617358.html
Copyright © 2011-2022 走看看