文件操作的作用
文件的基本操作
文件操作的步骤
打开文件
在Python中,使用open()函数,可以打开一个已存在的文件,或创建一个新文件,返回的是一个**file**对象。
open(name, mode)其中:1. name是目标文件名,或带路径的目标文件名;2. mode是打开文件的模式,只读、写入或追加等,默认的是只读。
fo = open("demo.txt", "w") # 创建文件fo.write("aaa") # 想文件写入数据fo.close() # 关闭文件
文件打开模式
- “
**r**”、“**w**”、“**a**”为主模式,带“**+**”符的表示有读写功能,“**b**”表示以二进制方式打开; - 所有的衍生模式,都继承其主模式的功能。 | r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 | | —- | —- | | rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 | | r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 | | rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 | | w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 | | wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 | | w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 | | wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 | | a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 | | ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 | | a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 | | ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
读写操作
read()
返回的是文件内容。
文件对象.read(num)其中:num表示从文件中读取的数据的长度(单位是字节),如果不传入num,表示读取文件中所有的数据。
fo = open("test.txt", "r")# fo.write("bbb")tempFile = fo.read()print(tempFile) # 打印文件内的所有内容fo.close()
readlines()
readlines()可以按照行的方式把整个文件中的内容进行一次性读取,并返回一个列表。其中,每一行的数据是一个元素。
fo = open("test.txt", "r")tempFile = fo.readlines() # 按行读取整个文件print(tempFile) # ['aaaaa\n', 'bbbbb\n', 'ccccc\n', 'ddddd']fo.close()
readline()
readline()可以按照行的方式读取文件内容,一次读取一行数据,返回的是文件内容。
fo = open("test.txt", "r")tempFile1 = fo.readline() # 按行读取文件内容tempFile2 = fo.readline() # 按行读取文件内容print(tempFile1) # aaaaaprint(tempFile2) # bbbbbfo.close()
seek()
用来移动文件指针。
文件对象.seek(偏移量, 起始位置)起始位置:0:----文件开头;1:----当前位置;2:----文件结尾。
fo = open("test.txt", "r")fo.seek(2, 0) # 文件指针指向开头偏移2个字节tempFile1 = fo.readlines() # 按行读取print(tempFile1) # ['aaa\n', 'bbbbb\n', 'ccccc\n', 'ddddd']fo.close()
关闭文件
文件对象.close()
文件读写示例——文件备份操作
"""用户输入当前目录下的文件名(包含后缀名),程序完成对该文件的备份功能备份文件为xx[备份]后缀,例如:test[备份].txt"""# 用户输入oldName = input("请输入你要备份的文件名:")# 备份名处理# 从右侧开始查找文件后缀的第一个点pointIndex = oldName.rfind(".")# 判断文件名是否有效if pointIndex > 0: # 当用户输入".txt"时,pointIndex值为0,为无效文件名(编译会报错)postFix = oldName[pointIndex:]newName = oldName[:pointIndex] + "[备份]" + postFix# 写入数据操作"""# 方法1(整个文件读写):----占用内存空间(不推荐)# 读取旧文件数据oldFile = open(oldName, "rb")tempData = oldFile.read()oldFile.close()# 数据写入新文件newFile = open(newName, "wb")newFile.write(tempData)newFile.close()"""# 方法2(循环读写固定长度数据):占用内存较小----推荐# 读取旧文件数据oldFile = open(oldName, "rb")newFile = open(newName, "wb")# 数据写入新文件while True:tempData = oldFile.read(10)if len(tempData) == 0: # 退出条件breaknewFile.write(tempData)oldFile.close()newFile.close()
文件和文件夹操作
在Python中的文件和文件夹操作,要借助**os**模块里面的相关功能。
# 导入模块import os# 使用功能os.函数名()
文件
文件重命名
os.rename(目标文件名, 新文件名)
删除文件
os.remove(目标文件名)
文件夹
创建文件夹
os.mkdir(文件夹名称)
删除文件夹
os.rmdir(文件夹名称)
获取当前目录路径
os.getcwd()
改变默认目录
os.chdir(目录路径)
获取目录列表
os.listdir(目录)
文件操作示例——批量修改文件名
"""批量修改文件名:1.可添加指定文字;2,可删除指定文字。"""# 导入os模块import osmodifyMode = int(input("请输入你要执行的修改模式(1:增加,0:删除):"))# 接收传入的修改名字if modifyMode == 1:modifySeg = input("请输入你要批量增加的字符:")# 获取当前目录列表fileNamelist = os.listdir()# print(fileNamelist)# 构造新名字for i in fileNamelist:newName = modifySeg + ios.rename(i, newName)elif modifyMode == 0:modifySeg = input("请输入你要批量增加的字符:")# 获取当前目录列表fileNamelist = os.listdir()# print(fileNamelist)# 构造新名字for i in fileNamelist: # 功能过于简单length = len(modifySeg)newName = i[length:]os.rename(i, newName)else:print("请按要求输入信息!")newNamelist = os.listdir()print(newNamelist)
