【Python】删改文本文件内容 |
您所在的位置:网站首页 › python清空text中的内容 › 【Python】删改文本文件内容 |
前言:在我之前的博客“对文本文件操作小结(一)”中,我已经对python中对文本文件操作进行了基本的阐述,我们已经明白了二进制文件和文本文件的区别,如何建立文件和程序的连接和怎样对文件进行读写操作。但是很多时候我们还需要删改文本文件中的内容,接下来我将介绍删改文件的操作。 一:如何删改文本文件中的内容 (1)清空文本文件内容:如果想删除文本文件的全部内容,我们可以选择打开文件方式为‘w’并不写入内容直接关闭文件,这样文本文件中的内容就会被清空。这种方法很简单,这里不做展示。 (2)删除指定行文本文件内容:但是很多时候我们并不需要完全删除文本文件的内容,我们需要删除比如某一行的内容。之前的内容中并没有删除文本文件中数据的方法,但是我们可以通过将除了欲删除数据段意外的文本文件内容写入内存,再写入原文本文件,这样就可以达到删除指定文本文件的效果。例如,我将英文诗《When you are old》的部分内容写入了文本文件中: 经过这样的操作之后,我们再打开原来的文本文件,发现原来的文件已经变为 但是如果文本文件中存在重复语句的情况,那么很可能会出现误删的情况。实际上当你对一个文本文件进行操作时,你必须了解你将要操作的文本文件的存储格式。从而才能选择正确的方式对文本文件进行操作。 (3)修改文本文件指定内容 其实我们修改内容和删除的思想基本上差别不大,修改不就是将更改过后的内容存入中转内存中吗?比如我想将我的范例中作者姓名的首字母大写,我的代码可以是: infile = open('When you are old.txt','r') transit = "" #创立空的字符串用于储存文件 for line in infile: #使用迭代器读取每一段文本文件的内容 if 'william butler yeats' in line: #判断作者姓名是否在此行数据中 words = line.rstrip('\n').split(' ') #去掉一行数据末尾的换行符,以空格为分割点分割字符串返回一个列表 for word in words: if word == 'by': transit += word+' ' else: transit += word.capitalize()+' ' #capitalize()返回首字母大写的字符串 transit += '\n' #在此行末尾加上去掉的换行符 else: transit += line #将数据写入过渡的字符串中 infile.close() onfile = open('When you are old.txt','w') #以清空原文本文件内容的方式打开文件写入 onfile.write(transit) onfile.close()这样运行以后,原文本文件变为 二:同时定义多个文件对象 在刚刚的范例中,可能有朋友在想,如果同时在读取文件的时候也定义一个以‘w’模式打开的文件对象,能不能免去定义过渡字符串这个步骤达到目的呢?我们不妨试一试,还是跟上面一样删除文件前两行,代码为: infile = open('When you are old.txt','r') onfile = open('When you are old.txt','w') line_number = 1 #记录文本文件的行号 for line in infile: #使用迭代器读取每一段文本文件的内容 if (line_number==1) or (line_number==2): line_number += 1 continue else: onfile.write(line) #将内容写入原文件 line_number += 1 infile.close() onfile.close()运行以后的结果会是什么呢?我们在文本编辑器中打开文件来查看,会发现结果是: 所获得的结果是: |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |