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

时间:2022-03-03 00:23:08

一、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参数详解,如下表所示

 

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

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

 

#!/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