• Python基础【第十一篇】文件操作(file()、open()方法和fileinput模块)


    一、file/open 内置函数

    • file函数的方法:

    注:file 和 open的用法和功能相同这里只对file进行分析

    file(‘filename’,’mode’)

    file(‘filename’,’mode’).write(‘data’) 数据写入文件

    file(‘filename’,’mode’).read()

    file(‘filename’,’mode’).flush() 文件刷新

    file(‘filename’,’mode’).close() 文件关闭保存

    • mode参数详解,如下表所示

     

    例:写入文件文件并读取文件

    #!/usr/bin/env python
    #-*- coding:utf-8 -*-
    #创建一个可写的file_write句柄
    file_write = file('test_file','w')
    #创建一个只读的文件句柄
    file_read = file('test_file','r')
    #将数据写入文件
    file_write.write('file test hello word')
    #写入文件后关闭file_write句柄
    file_write.close()
    #从file_read句柄中读取数据并打印
    for i in file_read:
        print i
    #关闭file_read句柄
    file_read.close()

    二、fileinput 模块

    #导入fileinput模块

    import fileinput

    #返回当前行号

    fileinput.filelineno()

    #返回当前正在读取的文件的名称。

    fileinput.filename()

    #input方法详解

    fileinput.input(files=文件名, inplace=0, backup='', bufsize=0, mode='r')
    
      files 文件名
    
      inplace 是否写入文件
    
      backup 如果替换文件之前要备份文件则指定文件名后缀
    
      mode 指定打开模式 默认为只读(经测试默认也是可以写的)

    #如果读取的是第一行则返回True,否则返回Flase

    fileinput.isfirstline()

    #关闭序列

    fileinput.close()

    例:

      将web.conf文件中的Alan替换为Lisa

    # cat web.conf
    
    www.Alan.com
    
    #vim input.py

    #编辑脚本文件代码内容如下

    #!/usr/bin/env python
    import fileinput #导入fileinput 模块
        for i in fileinput.input('web.conf',inplace=1,backup='_bak'):
            print i.replace('Alan','Lisa') //一定要输出不然是没有数据写入文件的
        fileinput.close()

    (注:上面input中的参数大意为 打开文件web.conf 并开启输出写入文件功能 执行替换之前先将文件备份为后缀为_bak的文件)

    #执行脚本

    #./input.py

    #查看当前目录会发现生成了一个web.conf_bak备份文件

    #ls
    
    web.conf
    
    web.conf_bak

    #对比两个文件可以发现web.conf已经被替换并且已经备份为web.conf_bak

    #cat web.conf
    
    www.Lisa.com
    
    #cat web.conf_bak
    
    www.Alan.com
  • 相关阅读:
    你好,2021!
    庚子走,辛丑来,愿一切安好!
    花魂鸟魂总难留,鸟自无言花自羞
    熟悉的小胡同
    夜半听鼾声
    写在儿子22岁生日
    vue配置Azure Artifacts npm包源
    RabbitMQ出错:AMQP close-reason, initiated by Peer, code=530的解决办法
    .NET MVC存储图片到数据库的解决方案
    EF Core解决报错’EntityTypeBuilder未包含“ToTable”的定义‘的方法
  • 原文地址:https://www.cnblogs.com/Alanpy/p/5059387.html
Copyright © 2020-2023  润新知