一、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 infile_read:printi#关闭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
# catweb.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备份文件
#lsweb.conf
web.conf_bak
#对比两个文件可以发现web.conf已经被替换并且已经备份为web.conf_bak
#catweb.conf
www.Lisa.com
#catweb.conf_bak
www.Alan.com