python文件操作-修改文件中的内容-with的用法

一、文件读写有缓冲区

1 fw = open('nhy','w')
2 fw.write('sdfsdf')
3 fw.flush()# 把缓冲区里面的数据立即写到磁盘上
4 fw.close()

二、with的用法,可直接打开文件进行读写,读写完成之后会主动关闭文件

打开多个文件时,使用逗号隔开即可。

1 with open('nhy','w') as fw, open('nhy2','w') as fw2:
2     fw.read()
3     fw.write('xxx')

 三、文件修改

1、简单粗暴直接
 (1)先获取到文件里面所有的内容
 (2)然后修改内容
 (3)清空原来文件里面的内容
 (4)重新写入

举例如下:

1 f = open('user-pwd.txt','a+')
2 f.seek(0)
3 all_data = f.read()
4 new_data = all_data.replace('123','python')
5 f.seek(0)
6 f.truncate()# 清空文件内容
7 f.write(new_data)
8 f.flush()
9 f.close()

  2、高效的处理方式
   words         words_new
 (1)先打开原来的文件,再打开一个空文件
 (2)循环处理原来文件里面的每一行数据,处理完之后写到新文件里面
 (3)把原来的文件删除,把新文件的名字改成原来文件的名字

1 import os
2 with open('words',encoding='utf-8') as fr,open('.words','w',encoding='utf-8') as fw:
3     for line in fr:
4         line = line.lstrip()# 去掉左边的空格
5         if line:# 判断这一行是否有数据
6             line = line.replace('','you')# 替换数据
7             fw.write(line)# 写到新文件里面
8 os.remove('words')# 删除原来的文件
9 os.rename('.words','words')#把新文件的名字改成原来文件的名字

 四、读取文件全部内容,按行显示

1 f = open('user-pwd.txt',encoding='utf-8') # 文件句柄,文件对象
2 
3 for line in f:    #直接循环文件对象
4     print('line:',line)

 

 

修改大文件的时候,可以用with

with open('user.txt',encoding='utf-8') as f: #文件对象,文件句柄
    for line in f:
        line = line.strip()
        if line:
            print(line)

 

posted @ 2018-06-11 09:34  灿烂初秋  阅读(485)  评论(0编辑  收藏  举报