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系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权 限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而 ...
随机推荐
- 01——Introduction to Android介绍
Introduction to Android Android provides a rich application framework that allows you to build innov ...
- js绝对地址图片转换成base64的方法
//将图片转换成base64 function getBase64Image(url, callback){ var canvas = document.createElement('canvas') ...
- rsync安装及部署
一.服务器端1.yum -y install rsync xinetd 2.vi /etc/xinetd.d/rsync 将yes 修改为no IPV6修改为IPV4 3.vi /etc/rsyncd ...
- Java中内存溢出与内存泄露
内存溢出 内存溢出(out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory:比如申请了一个integer,但给他存了long才能存下的数,就会发 ...
- 【Unity笔记】打包安卓APK时Build Setting中的三种Build System
Internal(Default):Unity内置,仅需Android SDK支持.不能导出工程,适用于仅适用Unity开发的工程. Gradle(New):使用Gradle进行构建,需要Androi ...
- mac通过路径找到对应的文件夹
在finder中 command + shift + G 跳出窗口中输入指定的路径,即可到达.
- InstrumentDriver,对iOS自动化测试说 Yes!
InstrumentDriver 是 Mobile自动化小组最近实现的基于 instrument,针对 iOS 的自动化测试框架,目前支持 java 语言编写测试用例. 研究过iOS自动化测试的同学肯 ...
- Fedora 21 安装 Bumblebee with the NVIDIA proprietary drivers
最新文章:Virson's Blog 参考Fedora Wiki:http://fedoraproject.org/wiki/Bumblebee#Fedora_21
- Matlab如何循环读取文件
循环读取图片第一种方法①List =dir('*.jpg'); %如需其它图片格式支持,可以自己[重载dir()]函数,实现查找所有图片文件的功能,%如果图片是其它路径,可以用 ["路径&q ...
- 【转】WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: 菜单Menu的自定义样式: 右键菜单ContextMenu的自定义样式 ...