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\n\',\'bcd123\n\']
f.writelines(l)#会循环list里面的每个元素并写进文件中,此方法用于list,如果是字符串则直接用write写即可
#文件中的内容更新为:
# abc,123
# qwe,456
# abc123
# bcd123

 

6. encoding=\’utf-8\’ : 如果读写的文件中有中文,要加上

 

版权声明:本文为denise1108原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/denise1108/p/10019544.html