• 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)
  • 相关阅读:
    [Java]用递归判断是否为递减数组
    android欢迎界面的编程实现[手相评分软件实例]
    工作两周年的感想
    最新基于adtbundlewindowsx86的android开发环境搭建
    新浪微博Failed to receive access token
    朋友
    房产中介
    房产中介
    与 Josh Bloch 探讨 Java 未来
    关于英语学习的一点思考
  • 原文地址:https://www.cnblogs.com/Noul/p/9162473.html
Copyright © 2020-2023  润新知