- 文件的作用:可以永久的保存数据
- 文件在硬盘中存储的格式是二进制
文件操作的流程
- 打开文件
- 读写文件
- 关闭文件
文件操作
读文件
open (file, mode = 'r', encoding = None)
- file要操作的文件名称,类型是str
- mode,文件打开的方式,r (read) 只读打开,w(write)写打开,a(append)追加打开
- encoding,主要有两种,GBK和UTF-8
- 返回值是一个文件对象
全部操作是
# 以只读的方式打开当前目录下的1.txt文件,文件不存在会报错
f = open("1.txt", 'r')
buff = f.read()
print (buff)
按字节读取
- 如果
read后面跟上数字表示读取几个字符,如果再调用read时表示再读取后面的几个字符,如下所示:
file1 = open("a.txt",'r')
buff = file1.read(3)
print buff
print ("*" * 30)
buff = file1.read(3)
print buff
file1.close()
程序运行结果如下所示:
读操作.png
按行读取
file2 = open("a.txt",'r')
# 一次读取一行的内容,返回的值是字符串
buff = file2.readline()
# 按行读取,一次读取所有行,返回值是列表,列表中的每一项是一个字符串,即每一行的内容
# buff = file2.readlines()
print buff
以行的形式读取大文件
file3 = open("a.txt", 'r')
while True:
# 或者 file3.read(1024)的形式也可以
buff = file3.readline()
if buff:
print buff
else:
break
file3.close()
写文件
- 打开文件W方式打开文件,文件不存在会创建文件,如果文件存在,会覆盖原文件
file1 = open("a.txt","w", encoding = 'utf-8')
file1.write("Hello,World\n")
file1.write("Hello,Python")
file1.close()
注意:当使用UTF-8编码打开GBK编码的数据时会出现乱码,编码就是如何将中文汉字变为二进制,或者如何将二进制转换为汉字
文件的追加操作
- 以 a 方式打开文件,追加内容,在文件的末尾写入内容
- 文件不存在,会创建文件
- 每运行一次则追加一次
file = open("a.txt", 'a')
file.write("hello world!")
file.close()
二进制操作文件
- 文本文件:txt、py、md 能够使用记事本打开的文件,这种文件可以使用文本方式打开文件,也可以使用二进制的方式打开文件
- 二进制文件:具有特殊格式的文件,mp3、mp4、rmvb、avi、jpg等,只能使用二进制的方式打开文件,主要有
rb、wb和ab三种情况,这种情况不能指定encoding参数
file4 = open("c.txt",'wb')
# 将字符串转化为二进制
file4.write("你好".encode())
file4.close()
file5 = open("c.txt",'rb')
buf = file4.read()
print buf
file5.close()
文件备份
- 用只读的方式打开文件
- 读取文件内容
- 关闭文件
- 只写的方式,打开新文件
- 将第 2 步读取的内容写入新文件
- 关闭新文件
file6 = open("a.txt",'r')
buff = file6.read()
file6.close()
file7 = open("d.txt",'w')
file7.write(buff)
file7.close()
文件和目录的操作
- 对文件和目录的操作,需要导入
os模块:import os
1. 文件重命名
格式:os.rename(原文件路径名,新文件路径名)
2. 删除文件
格式:os.remove("a.txt")
3. 创建目录
格式:os.mkdir(目录路径名)
4. 删除空目录
格式:os.rmdir(目录名)
5. 获取当前所在的目录
格式:os.getcwd()
6. 切换目录
格式:os.chdir()
7. 获取当前目录的内容
格式:os.listdir()
批量修改文件名
def createFiles():
os.chdir("test")
for i in range(10):
fileName = str(i) + ".txt"
print fileName
f = open(fileName,'w')
f.close()
os.chdir("../")
createFiles()
先创建文件,再修改文件
def modifyFiles():
path = os.chdir("test")
buf_list = os.listdir()
for i in buf_list:
file_name = "py_" + i
os.rename(i,file_name)
os.chdir()
modifyFiles()









网友评论