python-文件操作-修改的两种方式

方法一:(占内存)

全部把文件读进内存进行修改。

f_name ="D:/联系方式2.txt"

old_str =‘乔一菲‘
new_str =‘刚亮‘

f =open(f_name,‘r+‘)

str =f.read()
print(str)

str2=str.replace(old_str,new_str)
print(str2)
f.close()

方法二:(占硬盘)

边读边修改。

打开旧文件,用循环逐行地读,同时,往新文件逐行写。

import os
f_name ="D:/联系方式.txt"
f_new_name= "%s.new"%f_name

old_str =‘乔亦菲‘
new_str =‘刚亮‘

f =open(f_name,‘r‘)
f_new=open(f_new_name,‘w‘)

for line in f:
    if old_str in line:
        line =line.replace(old_str,new_str)
    f_new.write(line)

f.close()
f_new.close()

os.rename(f_new_name,f_name)   #注意:windows下会报错,要注意先检查文件名

原文地址:https://www.cnblogs.com/AYxing/p/8453907.html

时间: 2024-10-03 19:51:24

python-文件操作-修改的两种方式的相关文章

第六篇、文件处理之文件修改的两种方式

目录 第六篇.文件处理之文件修改的两种方式 说明 方式一 方式二 总结 第六篇.文件处理之文件修改的两种方式 说明 文件的数据是存放在硬盘上的,所以只能覆盖,不能直接修改,平时看到的修改文件都是障眼法的效果,具体的两种实现方式 方式一 将硬盘里的文件全部加载到内存里,内存是可以直接修改的,修改完了后,再由内存覆盖到硬盘里 import os with open('37r.txt') as fr, open('37r_swap.txt', 'w') as fw: data = fr.read()

文件的高级应用及修改的两种方式

文件的高级应用及修改的两种方式 一.文件的高级应用 可读.可写 r+t: 可读.可写 w+t: 可写.可读 a+t: 可追加.可读 # wt with open('36w.txt', 'wt', encoding='utf-8') as fw: print(fw.readable()) print(fw.writable()) False True # w+t with open('36w.txt', 'w+t', encoding='utf-8') as fw: print(fw.readab

文件修改的两种方式

文件修改的两种方式 文件的数据是存放于硬盘上的,因而只存在覆盖.不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式. 一.方式一 将硬盘存放的该文件的内容全部加载到内存,在内存中是可以修改的,修改完毕后,再由内存覆盖到硬盘(word,vim,nodpad++等编辑器). import os with open('info.txt', 'r', encoding='utf-8') as fr, open('info_test.txt', 'w', encodin

Android开发之使用sqlite3工具操作数据库的两种方式

使用 sqlite3 工具操作数据库的两种方式 请尊重他人的劳动成果,转载请注明出处:Android开发之使用sqlite3工具操作数据库的两种方式 http://blog.csdn.net/fengyuzhengfan/article/details/40193123 在Android SDK的tools目录下提供了一"sqlite3.exe工具,它是一个简单的SQLite数据库管理工具,类似于MySQL提供的命令行窗口在有些时候,开发者利用该工具来査询. 管理数据库. 下面介绍两种方式: 第

ios UI加载xib文件到控制器的两种方式(MS)

X-code6.3 创建xib文件 加载xib文件到控制器的两种方式(MS) // 1.第一种方式 //    NSArray * array = [[NSBundle mainBundle]loadNibNamed:@"cell" owner:nil options:nil]; //    MyTableViewCell * cell = [array firstObject]; 其中cell为新建的xib文件名 // 2.第二种方式 UINib * nib = [UINib nib

python用requests和urllib2两种方式调用图灵机器人接口

最近从网上看见个有意思的图灵机器人,可以根据不同的信息智能回复,比如你发送一个"讲个笑话",它就会给你回复一个笑话,或者"北京天气"就可以回复天气情况,或者英文单词然后给你回复中文释义.官方文档中有php和java的调用方式,我就弄个python的吧. 注册获取API KEY 这一步很简单,直接注册一个账号就可以看到你的API KEY.这个KEY我们以后发送get请求的时候需要用到. Pythoh调用示例 掉用也比较简单,主要是模拟post 请求.然后解析 json

SpringMVC文件上传的两种方式

搞JavaWEB的应该或多或少都做过文件上传,之前也做过简单的上传,但是如下的需求也确实把我为难了一把: 1.上传需要异步, 2.需要把上传后文件的地址返回来, 3.需要进度条显示上传进度. 项目使用SpringMVC架构+easyUI,初步分析,进度条可以使用easyui自带的进度条,上传可以使用ajaxFileUpload或者ajaxForm.文件传上去,然后把路径带回来是没问题的,关键是上传进度怎么获取.最终,两种方式都实现啦. 首先,不管哪种方式,后台对文件处理都是必须的.文件处理: 1

pb对Web Service的操作可使用两种方式实现

从PB8.0/9.0开始,就已经提供Web Service Proxy功能,能够直接进行相关程序的编写. 但是,部分老项目使用PB6.5开发 研究后发现,其实PB6.5要操作Web Service也挺容易. 说明:1.本例子用于pb对Web Service的操作.       2.pb可使用两种方式实现.   3.proxy方式使用pb9自带的Web Service Proxy功能实现,需要将sharedPowerBuilderpbsoapclient90.pbd包含到应用中来.   4.OLE

Python 实现接口类的两种方式+邮件提醒+动态导入模块+反射(参考Django中间件源码)

实现接口类的两种方式 方式一 from abc import ABCMeta from abc import abstractmethod class BaseMessage(metaclass=ABCMeta): @abstractmethod def send(self,subject,body,to,name): pass 方式二 class BaseMessage(object): def send(self, subject, body, to, name): raise NotImp