一、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