1. 关于读取文件
f.read() | 读取文件中所有内容 |
f.readline() | 读取第一行的内容 |
f.readlines() | 读取文件里面所有内容,把每行的内容放到一个list里面 |
注:因为文件指针的作用,如果以上方法连用,会有读取影响
使用方法请参见:http://www.cnblogs.com/yun1108/p/8967334.html
2. f.flush() :刷新缓冲区,立即写到磁盘上
3. f.seek(index) : 移动文件指针到指定的下标处,即从指定的下标处开始读取文件,但写入还是从最后开始写入
4. with open : 用完后自动关闭文件,省去了手动添加f.close()功能 例子:修改文件
# 第一种,适合读取小一些的文件 with open('users','a+') as fw: fw.seek(0) #用r+,就可省略这一步 result = fw.read() new_result = result.replace('bcd','python') fw.seek(0) fw.truncate() #清空文件内容 fw.write(new_result) print(new_result) # 第二种,读取大文件并修改 import os with open('users') as fr,open('.users','w',encoding='utf-8') as fw: #.users是一个临时文件 for line in fr:#从需要修改的文件里面读文件 new_line=line.replace('python','修改文件') fw.write(new_line) os.remove('users') #删除原文件 os.rename('.users','users') #将临时文件重命名为users
5. 循环文件 --- 高效读取文件
f=open('users','a+',encoding='utf-8') # f:文件对象,或者文件句柄 #文件中内容为: # abc,123 # qwe,456 # 1. 循环读取文件中的内容并存入字典 d={} f.seek(0) while 1: #第一种,但要求文件里不能有空行,如有空行,则只能读取到空行的上一行 line=f.readline().strip() if line: # pass #什么也不做 user,passwd=line.split(',') d[user]=passwd else: break print(d) #输出内容:{'abc': '123', 'qwe': '456'} # 2. 直接循环文件对象f,每次取的就是文件里的每一行 f.seek(0) # 如果open文件时是r+,可省略这步 for i in f: print('每次循环的是',i) #输出内容: #每次循环的是 abc,123 #每次循环的是 qwe,456 l=['abc123 ','bcd123 '] f.writelines(l)#会循环list里面的每个元素并写进文件中,此方法用于list,如果是字符串则直接用write写即可 #文件中的内容更新为: # abc,123 # qwe,456 # abc123 # bcd123
6. encoding='utf-8' : 如果读写的文件中有中文,要加上