Python有下列内置文件操作:
• open() 打开或者创建一个文件 格式:open('文件路径','打开模式') 打开模式:r w a 等模式 具体请参考手册
• close() 关闭文件
• read() 读取文件
• readline() 读取一行文件
• readlines() 将文件中的内容读取到序列当中。
• write() 写入文件
• writelines() 将序列写入文件中
下面通过一些实例来讲解:
1、简单的文件信息读取
# 打开文件
f = open("./a.txt","r")
# 读取文件内容并输出
content = f.read(5)
print(content)
content = f.read(5)
print(content)
content = f.read()
print(content)
# 关闭文件
f.close()
2、readline() 读取全文(重要掌握)
f= open("./a.txt","r")
content = f.readline()
while len(content)>0:
print(content,end="")
content = f.readline()
f.close()
3、readlines() 一次性读取所有行
f = open("./a.txt","r")
flist = f.readlines()
for line in flist:
print(line,end="")
f.close()
使用 readlines() 读取得到的是一个列表,输出时要循环输出。
4、文件写入操作
f = open("./b.txt","w")
f.write("Hello Python!\n")
f.write("Hello MysQL!\n")
a = ["Hello World!\n","Hello HTML!\n","Hello PHP!\n"]
f.writelines(a) #一次性写入多行
f.close()
<h3>文件相关小项目实战</h3>
————————自定义文件复制函数
(1)文本文件的复制
def mycopy(file1,file2):
'''
这是一个文本复制函数
'''
f1 = open(file1,"r")
f2 = open(file2,"w")
content = f1.readline()
while len(content)>0:
f2.write(content)
content = f1.readline()
f1.close()
f2.close()
'''
f = open("./a.txt","w")
a = ["Hello World!\n","Hello HTML!\n","Hello PHP!\n"]
f.writelines(a)
'''
mycopy("./a.txt","./a_copy.txt")
这里需要主要一个问题。要复制的文件一定要存在,如果是像我上面的程序去掉
'''
f = open("./a.txt","w")
a = ["Hello World!n","Hello HTML!n","Hello PHP!n"]
f.writelines(a)
'''
这一段的注释符号,复制后的文件是空的。
(2)二进制文件(图片、音频、视频等)的复制
def mycopy(file1,file2):
'''
这是一个文本复制函数
'''
f1 = open(file1,"rb")
f2 = open(file2,"wb")
content = f1.readline()
while len(content)>0:
f2.write(content)
content = f1.readline()
f1.close()
f2.close()
mycopy("./k.png","./k_copy.png")
与文本文件的复制不同的是,二进制文件在打开时要使用二进制的方式。
f1 = open(file1,"rb")
f2 = open(file2,"wb")
要用 wb 和 rb 。