目录
前言
一、文件基本操作
1.什么是文件
2.操作文件的步骤
3.文件的路径
4.open函数操作权限总结
5.文件读取
6.with-open-as
7.文件定位读取
8.文件编码
二、OS模块
1.具体操作
三、文件操作案例
案例1:文件的复制粘贴
案例2: 文件重命名
前言
今天来介绍一下关于python的文件操作
一、文件基本操作
1.什么是文件
视频,音频,图片,文本 都是文件。总的来说,文件就是就是存储在持久化硬盘上的一种形式
2.操作文件的步骤
第一步 新建打开一个文件
第二步 编辑文件
第三步 保存退出
open(参数1,参数2)
open函数就是在本地打开一个文件
参数1 选择文件的路径
参数2 打开文件的方式
关闭文件:close()
3.文件的路径
相对路径:以当前操作的文件为起点,去寻找文件
./ 上一级目录
../ 上上一级目录
绝对路径:以计算机盘符为起点
4.open函数操作权限总结
r只读模式打开文件,读文件内容的指针会放在文件开头。
w只写模式打开文件,若文件存在,打开时会清空文件中原有的内容。
a以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件末尾(新写入内容会位于已有内容之后);反之,则会创建新文件。
rb以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件开头,一般用于非文本文件,如图片、音频文件等。
wb以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件)
ab以二进制格式打开文件,并采用追加模式,对文件只有写入权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有的内容之后);反之,则创建新文件。
r+读写权限,打开文件后,既可以从头读取文件,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长的原有内容。
w+打开文件后,会对原有内容进行清空,并对该文件有读写权限。
a+以读写模式打开文件;如果文件存在,文件指针放在文件末尾(新写入文件会位于已有文件之后);反之,则创建新文件。
rb+以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件开头,通常针对非文本文件(如音频文件)。
wb+以二进制格式、读写模式打开文件,一般用于非文本文件
ab+以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之则创建新文件。
注意:
①操作文件必须存在的模式有:r、rb、r+、rb+。
② 若文件存在,会清空其原有内容(覆盖文件);反之创建新文件的模式有:w、wb、w+、wb+
规律总结:
r:读 w:写 a:追加(写) b:二进制 +:拥有读写权限
# 打开一个文件并赋予写入数据的权限file = open("/Python/python_code/05_文件操作/file/123.py", "a")# 写入数据file.write("第一个文件写入的语句。")# 一次写入一行# file.writelines()# 关闭文件file.close()
5.文件读取
file.read(参数) 用于读取文件
参数:一次性读取文件的大小该方法的返回值为读取到的内容
# 打开一个文件file = open("./01_文件基本操作.py", "r")# 读取文件 按字节读完为止# data = file.read()print(file.read(1024))# 将文件按照行来读取print(file.readlines())# 关闭文件file.close()
6.with-open-as
有时候我们会忘记关闭文件,用with open as不需要手动关闭文件,当该语句结束后,系统会自动为我们关闭文件。
with open("./file/text.txt", "w") as file:file.write("你真棒!")# flush 强制内存进行刷新,将数据写入file.flush()
7.文件定位读取
seek (偏移量,方向)
0 表示从文件头开始处理
1 表示从当前游标位置开始
2 表示从文件末尾开始
游标:tell
with open("file/test.txt", "r") as file:# 读取文件 读取一个字节print(file.read(1))print(file.seek(2, 0))print(file.tell())print(file.read(1))print(file.tell())print(file.read(1))print(file.tell())print(file.read(1))print(file.tell())
8.文件编码
"""文件编码 utf-8 国际编码 兼容全球大多数国家的语言还有:GBK GB2312"""with open("./file/text.txt", "r", encoding="GBK") as file:pass
二、OS模块
1.具体操作
os是python的标准库之一
先导入模块:
# 导入模块import os
显示当前文件路径:
print(os.getcwd())
显示当前目录下的所有文件名称,存储到列表中:
list_dir = os.listdir()for i in list_dir:print(i)
创建文件夹:
os.mkdir("文件夹路径")
删除文件夹:
os.rmdir("文件夹路径")
删除文件:
os.remove("文件夹路径")
重命名文件:
os.rename("旧名称","新名称")
系统层面执行:
os.system("系统命令行的执行 linux")
拼接两个路径:
os.path.join("","qq")
获取文件绝对路径:
os.path.abspath("文件路径")
文件相对路径:
os.path.relpath("文件路径")
获取文件大小:
os.path.getsize("文件路径")
判断该文件夹是否存在:
os.path.exists("文件路径") # 返回值为布尔类型
判断是不是文件,是不是文件夹,是否是绝对路径:
os.path.isfile("文件路径")os.path.isdir("文件路径")os.path.isabs("文件路径")
获取文件创建时间,访问时间,修改时间:
os.path.getctime("文件路径")os.path.getatime("文件路径")os.path.getmtime("文件路径")
三、文件操作案例
案例1:文件的复制粘贴
"""2、使用文件操作完成“对指定文件的复制与粘贴”"""with open("./file/text2.txt", "wb") as file2:with open("./file/text.txt", "rb") as file1:data = file1.read(1024)if len(data) != 0:file2.write(data)print("复制粘贴已完成!")
案例2: 文件重命名
"""3、对指定目录下面的文件进行批量重命名,新名称 = 原名称 + python"""# 导入模块import os# 获取文件路径path = "/Python/python_code/05_文件操作/file"# 获取文件夹中所有的文件名称file_all = os.listdir(path)# 步骤:依次取出每个文件,并重命名for i in file_all:old_path = path+os.sep+i# 每个文件的后缀可能不同,找到文件的后缀下标j = old_path.rfind(".")str1 = old_path[j:] # str1为文件名后缀str2 = i.split(".")# 重命名new_path = path+os.sep+str2[0]+"python"+str1os.rename(old_path, new_path)
修改前file目录下的文件名称:
修改后: