在用python来进行文件读写前,我来跟大家简单简述下文件的概念,一些打开模式,文件属性和文件对象的常用方法
何为文件?想必大家会说电脑上的文件夹,软件和程序等等,这些都是对的,文件是数据的抽象和集合,文件是存储在辅助存储器上的数据序列,是数据存储的一种形式,文件的展现形态分为文本文(也称ASCII文件,扩展名通常为“.txt”,能够在Windows的“记事本”程序中打开,并且打开后能看出文件的内容)件和二进制文件(使用Windows的“记事本”程序打开二进制文本,则看不出文件的内容(乱码),如dat数据文件,图像,视频,可执行文本等)
接着我们来聊聊文件的打开,文件属性和文件对象的常用方法
python内置了文件对象,使用open()函数即可指定模式打开指定文件,并创建文件对象,格式如下
<变量名> = open (<文件名>, <打开模式>) 文件句柄 文件路径和名称(源文件同目录可省路径) 文本or二进制(读or写)
模式 | 说明 |
"r" | 只读模式 |
"w" | 写模式 |
"a" | 追加模式 |
"b" | 二进制模式(可与其他模式组合使用) |
"+" | 读/写模式(可与其他模式组合使用) |
属性 | 说明 |
closed | 判断文件是否被关闭,若文件被关闭,则返回Ture |
mode | 返回文件的打开模式 |
name | 返回文件名称 |
模式 | 说明 |
open(filename,mode) | 按指定模式打开文件 |
write() | 将内容写入文件 |
close() | 把缓冲区内容写入文件,同时关闭文件,并释放文件对象 |
read([size]) | 从文件中读取size字节的内容作为结果返回,如果省略size,则表示一次性读取所有内容 |
readline() | 从文本文件中读取一行内容并作为结果返回 |
readlines() | 把文本文件中的每行文本作为一个字符串存入列表中,并返回该列表 |
seek(offset[,whence]) | 把文件指针移动到新的位置,offset表示相对于whence的位置。whence为0表示从文件头开始计算;whence为1表示从当前位置开计算;whence为2表示从文件尾开始计算;默认为0 |
以上就是文件的概念,一些打开模式,文件属性和文件对象的常用方法,在我们做文件操作前做的第一步就是要读取文件
fp = open("test.txt") #打开文件
print(fp.read())
close("test.txt") #关闭文件
根据所需你也可以使用readline和readlines这两种的方式读取
例
f=open('../Stu_Pack/万疆.txt','rt',encoding='utf-8')
#print(f.read())
for line in f.readlines():
print(line)
f.close()
注:1.因为py文件不支持中文因此需要使用这段代码encoding='utf-8'将文件编码类型改为UTF-8的类型
2.".."表示跳出当前文件夹,由于我的《万疆.txt》这个文件是在Stu_Pack这个文件夹中,而我这个py编写代码是保存在另一个文件夹中,两者并不在一起,如果直接查找,会找不到这个文件就如下图所示
因此我们在用py查找文件时必须要把文件所在位置搞清楚,不然很容易报错!!!
在了解文件怎么读取后,我们接下来就是要做的就是写文件
f = open('../Stu_pack/万疆.txt','r',encoding = 'utf-8')
f2 = open('万疆_DIP.txt','a',encoding = 'utf-8')
f2.write(f.read()) #将f中的文件写入f2中
完成以上的两步,接着我们就可以合并两个甚至多个文件,废话不多说直接上代码
fr_1=open('../Stu_Pack/万疆.txt','rt',encoding='utf-8')
fr_2=open('../Stu_Pack/See You Again.txt','rt',encoding='utf-8')
fw=open('万疆_DIP.txt','w+',encoding='utf-8')#"w+"表示如果没有这个文件时自动创建并加入要添加的文件内容,如果存在则在这个文件里的最后面不覆盖的添加文件内容
for line in fr_1:
fw.write(line)
for line in fr_2:
fw.write(line)
fw.seek(0)
for line in fw.readlines():
print(line)
#关闭文件
fr_1.close()
fr_2.close()
fw.close()
效果如下
我这里合并文件的方法采用的是先打开多个文件,再把这多个文件写入一个空白文件中,我们也可以打开一个文件,写入一个空白文件中,再打开一个文件内,再写入刚刚那个空白文件,同样也可以做到合并文件的效果。