day4_修改文件
修改文件有两种方式:一种是把文件的全部内容都读到内存中,然后把原有的文件内容清空,重新写新的内容;第二种是把修改后的文件内容写到一个新的文件中
第一种:一次性把文件全部读到,读到内存这个能,这种文件小没什么问题,大文件不好。
实例1:
#、简单、粗暴直接的,一下这个方式有点儿麻烦,打开文件两次
f = open('file.txt','r',encoding='utf-8')
res = f.read().replace('总是','zongshi') #替换内容,生成新文件
f.close()
f = open('file.txt','w',encoding='utf-8')
f.write(res)
f.flush() #立即把缓冲区里面的内容,写到磁盘上,达到立即生效的效果
f.close()
实例2:a+模式修改
f = open('file.txt','a+',encoding='utf-8')
f.seek() #因为是a+模式,指针在最后,所以移到最前面
res = f.read().replace('你','NI')
f.seek() #读完后文件指针又到最后面,所以再移到最前面
f.truncate() #清空文件里面的内容
f.write(res) #写入
f.close()
实例3:r+模式修改
f = open('file.txt','r+',encoding='utf-8')
res = f.read().replace('我','WO')
f.seek()
f.write(res) #自动清空原内容,写入新内容
第二种 :循环读取每一行,有需要改的就改内容,再逐行写入新文件,最后删除旧文件,新文件名改成就文件名
#读每一行后写入新文件,然后删除旧文件,再把新文件改成旧文件名字,需要导入os模块
import os #导入os模块
f = open('file','r',encoding='utf-8')
f2 = open('file_bat.txt','w',encoding='utf-8') #再打开一个文件,一直处于打开状态,所以w模式不会覆盖,会接着往后面写
for line in f:
newline = line.replace('一点','两点') #将文件中的一点改成两点
f2.write(newline) #写入新文件
f.close() #关闭文件
f2.close() #关闭文件
os.remove('file') #删除file这个文件
os.rename('file_bat.txt','file') #将新文件名字改成file
with写法:
with open('file.txt',encoding='utf-8') as f, open('file.txt.bak','w',encoding='utf-8') as f2:#打开多个文件
for line in f:
new_line = line.replace('二点','一点')
f2.write(new_line) os.remove('file.txt')
os.rename('file.txt.bak','file.txt')
day4_修改文件的更多相关文章
- 文件IO操作..修改文件的只读属性
文件的IO操作..很多同行的IO工具类都是直接写..但是如果文件有只读属性的话..则会写入失败..所以附加了一个只读的判断和修改.. 代码如下: /// <summary> /// 创建文 ...
- 【转】linux查看及修改文件权限以及相关
linux查看及修改文件权限以及相关 查看文件权限的语句: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有 ...
- 在win7环境下批量修改文件权限
在附件->命令提示符->右键->以管理员身份运行 进入你需要修改的文件位置,然后输入下面两条命令 takeown /f * /A /R icacls * /t /grant:r ev ...
- Linux文件类型及如何查看,修改文件读写权限
现在使用 ls -l 命令,查看详细信息格式的文件列表,您将会看到如下内容: total 5drwxr-x--- 4 user group 4096 Mar 10 00:37 filenamed ...
- linux系统下修改文件夹目录权限
linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...
- ubuntu下修改进入root用户和修改文件权限
(1)进入root用户 su root 密码:设置的root密码 (2)修改文件权限 sudo chmod +777 file (3)执行shell ./shellfile (4)编写shell 第 ...
- 使用Inno Setup函数修改文件内容
0.inno打开文件操作&字符串操作所需函数原型及解释 function LoadStringsFromFile(const FileName: String; var S: TArrayOf ...
- 60-chmod 修改文件的权限
修改文件的权限 chmod [options] who operator permission file-list (符号模式) chmod [options] mode file-list (绝对模 ...
- Linux命令:修改文件权限命令chmod、chgrp、chown详解
Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
随机推荐
- 基于Python, Selenium, Phantomjs无头浏览器访问页面
引言: 在自动化测试以及爬虫领域,无头浏览器的应用场景非常广泛,本文将梳理其中的若干概念和思路,并基于代码示例其中的若干使用技巧. 1. 无头浏览器 通常大家在在打开网页的工具就是浏览器,通过界面上输 ...
- iOS开发微信支付
现在基本所有的App都会接入支付宝支付以及微信支付,也有很多第三方提供给你 SDK帮你接入,但是这种涉及到支付的东西还是自己服务器搞来的好一些,其实搞懂了 逻辑非常的简单,下面直接给大家说说下基本流程 ...
- 树莓派做路由器_配置防火墙filter和nat转发_转载
转自:https://blog.csdn.net/hustsselbj/article/details/45866681 如果用树莓派当作路由器转发有线和无线网络,则需要对iptables进行相关配置 ...
- pip离线安装软件包
1. 首先一台主机上安装所有python包,然后运行如下命令下载依赖包: pip freeze > requirements pip download -r requirements 当然可以在 ...
- CentOS5.x、CentOS6.x 使用NFS及mount实现两台服务器间目录共享
一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置:centos 5 : portmap:实现RPC(协议 ...
- Java知多少(95)绘图基础
要在平面上显示文字和绘图,首先要确定一个平面坐标系.Java语言约定,显示屏上一个长方形区域为程序绘图区域,坐标原点(0,0)位于整个区域的左上角.一个坐标点(x,y)对应屏幕窗口中的一个像素,是整数 ...
- 【转】svn:is not under version control and is not part of the commit, yet its child解决办法
来自:http://blog.csdn.net/lufeng20/article/details/7641093 在把写好的代码提交到svn上面时,遇到了一个错误如下: svn: Commit fai ...
- MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置
一.总概 1.MHA介绍 MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步). MH ...
- Mac 挂载树莓派nfs
vim /etc/export /data_sda1/ 192.168.1.*(rw,sync,insecure,no_root_squash) mac端自带rpcbind 挂载 sudo moun ...
- swoole消息推送
socket.php // 注释的部分是学习的笔记 <?php //创建websocket服务器对象,监听0.0.0.0:9502端口 $ws = ); //监听WebSocket连接打开事件 ...