“纯文本文件”只包含基本文本字符,不包含字体、大小和颜色信息.带有.txt扩展名的文本文件,以及带有.py扩展名的Python脚本文件,都是纯文本文件的例子。<--这里你就会发现一个有意思的地方,是不是我们可以写一个python程序更改另一个python程序的内容。^_^
纯文本文件可以被windows的Notepad(记事本)或OS X 的TextEdit应用打开
你的程序也可以轻易地读取纯文本文件的内容,将他们视为普通的字符串值。
“二进制文件”是所有其他文件类型,诸如字处理文档、PDF、图像、电子表格和可执行文件(指的是exe之类的)。如果用打开纯文本文件的方式打开一个二进制文件,你就会得到以下的内容。
这根本就没有人可以看懂,或者说这就不是可以被读懂的。
有非常多不同类型的二进制文件,每一种都要用自己的方式处理,好在python中有很多模块让二进制的处理变得简单,比如说shelve。不过好在,在这篇文章中讲的“文件”都是纯文本文件。
在python中,读写文件有三个步骤:
1. 调用open()函数,返回一个File对象。
2. 调用File对象的read()或者write()方法。
3. 调用File对象的close()方法,关闭该文件。
总结一下就是打开,处理,关闭,有头有尾。
要用open()函数打开一个文件,就要向它传递一个字符串路径,表明希望打开的文件。这个既可以是绝对路径,也可以是相对路径。
绝对路径是指从文件系统的根目录开始指定文件或目录的路径。它是一个完整的路径,包括文件或目录在文件系统中的所有层级。例如,如果你想要访问硬盘上的一个名为“example.txt”的文件,它的绝对路径可能是“C:\Users\YourUsername\Documents\example.txt”
相对路径是相对于当前工作目录或文件的路径。它不是从文件系统的根目录开始的,而是从当前目录开始的。例如,如果你想要访问同一目录下的另一个名为“subfile.txt”的文件,它的相对路径可能是“./subfile.txt”。
打开文件对应代码如下:
#绝对地址
text = open('C:\\Users\\your_home_folder\\hello.txt')
#相对地址
text2 = open('./hello.txt')
这样的命令将以读取纯文本文件的模式打开文件,简称“读模式”,这时候Python只会让我们读取数据,而不能写入或者修改它。“读模式”是python默认的模式,如果你不想以来于默认值,在文件路径后面加上第二个参数 'r',表示读模式。
#表明是读模式
#绝对地址
text = open('C:\\Users\\your_home_folder\\hello.txt','r')
#相对地址
text2 = open('hello.txt','r')
现在有了一个File对象,就可以开始从它读取内容。使用File对象的read()方法可以将整个文件的内容读取为一个字符串值。
#读取文件内容
textContent = text.read()
上面这段代码就像是把文件里的内容看成一个大字符串,read()方法会返回这个字符串。
如果说想把每一行的内容分开,可以用readlines()方法,把每一行的内容看成一个字符串,整个文件就是一个字符串数组。
#使用readlines()方法读取文件内容
text2Content = text2.readlines()
若要往文件写入内容,需要以“写入纯文本模式”或“添加纯文本模式”打开文件,分别简称为“写模式”和“添加模式”。(前文出现的是“读模式”)
写模式将覆盖原有的文件,从头开始,像用一个新值覆写一个变量的值。
用‘w’作为第二个参数传递给open(),以写模式打开文件。
#以写模式打开文件
text = open("Hello.txt",'w')
#覆写文件内容
text.write("Hello World\n")
运行程序后,Hello.txt里面的内容就变成了Hello World
与写模式不同,添加模式在已有文件的末尾添加文本。
将‘a’作为第二个参数传递给open(),以添加模式打开该文件。
#以添加模式打开文件
text2 = read("Hello.txt",'a')
#写入文件
text2.write("aaaa")
运行程序后,Hello.txt里面的内容变成了
Hello World
aaaa\
需要注意的是,write()方法不会像print()函数那样,在字符串末尾自动添加换行字符,所以必须自己添加字符'\n'.
现在有一个命名为speech.txt的文件,里面的内容大致如下。
我想要把除了台词之外的内容去掉,只留下是台词的部分。
在处理前不妨写用readlines()读取一下,看看打印出来是什么
#以写模式打开文件
File = open('speech.txt')
#一行一行读取文件
FileContent = File.readlines()
print(FileContent)
打印出了这样的内容,那我们就可以用列表的方式编辑文件内容了。
#以写模式打开文件
File = open('speech.txt')
#一行一行读取文件
FileContent = File.readlines()
#内容摘取
i=1
Content=[]
while(i<=(91*4)):
Content.append(FileContent[i+1])
i+=4
print(Content)
#写入文件
File = open('speech.txt','w')
for i in Content:
File.write(i)
#关闭文件
File.close()
得到了这样的文件:
如果这篇文章对你有帮助,请帮忙点个赞,如果有错误,请务必在评论区向我指出,谢谢。