20、文件操作:
1、打开文件:
f = open('db','r') 只读 ; f = open('db','w') 只写 ; f = open('db','x')文件存在报错,不存在则创建并只写入。注意:因为文件是以字节形式存储在硬盘中,而文件读取的是字符串形式,所以这里一定要注意字节转字符串时候采用的什么字符编码,python自己默认转换。
f = open('db','rb'):表示以二进制的形式打开文件。所以f.write( )时必须先把字符串转换成字节类型才能写入文件中。
f = open('db','r+',encoding='utf-8')# r+以后用的多。。。。w+先清空文件,a+永远在最后追加。。
data = f.read(1) #如果打开方式无 b,则read ,按照字符读取
print(f.tell( )) #tell 当前指针所在位置(字节)
f.seek(f.tell( ))调整当前指着你的位置(字节)
f.write('888') #当前指针位置开始覆盖。
f.close
2、操作文件:
#read() 无参数,读全部;有参数 : 有b,按字节,无b按字符。
#tell()获取当前指针位置(字节)
#seek(1)指针跳转到指定位置(字节)
#write( ) 写数据,有b,字节;无b,字符。
#close
#fileno 文件描述符。
#flush 强刷到磁盘。
#readline 仅读取一行。
#truncate 截断,指针后面的清空。
#for循环文件对象 f = open(xxx)
for line in f: ==》经常用到。。循环文件的所有行。
print(line)
3.关闭文件: file.close 或者
with open('xb') as f:
pass
高版本python 支持打开多个文件,with open('db1','r') as f1,open('db2','w') as f2:
for line in f1:
f2.write(line) 实现读取f1一行,往f2中写一个行,这里可一个加一个 count ,实现写多少行。
还可以是实现替换:for line in f1:new_str = line.replace('alex','eric') f2.write(new_str) 对f1中出现的所有的'alex' 替换成'eric'。