zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    ElasticSearch大数据分布式弹性搜索引擎使用—从0到1
    使用Fiddler搭建手机调试环境(我做得项目是调试微信的公众号)
    Ajax的三种实现及JSON解析
    jquery ajax调用返回json格式数据处理
    jsp页面格式化数字或时间
    java组装json和提取一个json的例子
    span的onclick事件
    Android Studio创建库项目及引用
    xmlns:android="http://schemas.android.com/apk/res/android的作用是
    Android中attrs.xml文件的使用详解
  • 原文地址:https://www.cnblogs.com/Noul/p/9162473.html
Copyright © 2011-2022 走看看