python学习笔记-文件操作
文件操作的基本步骤
1. 打开文件
使用open函数打开文件
Open(name,mode)
Name:打开文件的文件名 (可以包含文件所在的具体路径)
Mode:设置打开文件的模式:只读,写入,追加
f = open('test.txt','w') #创建文件对象 创建位置在当前路径
f.write('aaa') #写入文件
f.close() #关闭文件
访问模式的特点
1. r
只读模式 如果文件不存在进行报错 不支持写入操作
2. w
如果文件不存在 新建一个文件 ,如果写入的文件变化了 那么 原有的文件内容会被覆盖
3. a
如果文件不存在 新建一个文件,如果写入的文件内容变化了 原有的内容不会被覆盖 在原有的内容基础上 追加新的内容
**4. 省略访问模式 **
默认只读模式
文件操作read()
语法:文件对象.Read(num) num表示从文件中读取数据的长度(单位是字节) 如果没有传入num 表示 读取文件中的所有数据
= open('test.txt','r')
print(f.read(10)) #第一行数据 换行符占据一个字节
f.close()
文件操作readlines()
Readlines()按照行的方式将整个文件内容进行读取,并且返回的是一个列表,其中每一行的数据为一个元素。
f = open('test.txt')
content = f.readlines()
print(content)
f.close()
可以看到 打印出来的数据 是一个列表,列表中的每一个元素是 文件中的一行 并且最后一个字符是换行符\n
[‘aaaaa\n’, ‘bbbbb\n’, ‘ccccc\n’, ‘ddddd\n’, ‘eeeee\n’]
readline()
一次读取一行数据
f = open('test.txt','r')
content = f.readline()
print(f'第一行数据:{content}')
content = f.readline()
print(f'第二行数据:{content}')
f.close()
访问模式的特点
Rb 以二进制形式打开一个文件 只读,文件的指针会放在文件的开头
Wb 以二进制的形式打开一个文件用于写入 文件不存在 创建该文件
R+ 打开一个文件用于读写
W+打开一个文件用于读写 原有的数据全部都会被清除(覆盖)
A a+ ab ab+ 追加访问模式 文件指针都在结尾 文件不存在 会创建该文件
seek函数
用来移动文件指针
语法:文件对象.seek(偏移量,起始位置)
起始位置:0:文件开头
1:当前位置
2:文件结尾
f = open(‘test.txt’,‘r’)
“”"
目标:r 改变文件指针位置 改变读取开始位置或者把文件指针放在结尾
a 改变文件指针位置 做到可以读取出来数据
“”"
#从第一个字符开始 两个字符不读取 也就是前两个字符不读取
#将文件指针放到结尾 读不到数据
f.seek(2,0)
#读取所有的数据
con = f.read()
print(con)
f.close()
文件备份
#接受用户输入目标文件名
old_name = input("请输入您要备份的文件名:")
print(old_name)
#提取文件后缀点的下标 最后一个点 从右边开始找 字符串.rfind(‘’)
index = old_name.rfind('.')
print(index)
#字符串切片 [开始:结束:切片]
#开始位置不写 默认从0开始
s = old_name[:index]
print(s)
ss = old_name[index:]
print(ss)
#组成新的名字
new_name = old_name[:index] + '[备份]' + old_name[index:]
print(new_name)
文件备份写入数据
#接受用户输入目标文件名
old_name = input("请输入您要备份的文件名:")
print(old_name)
#提取文件后缀点的下标 最后一个点 从右边开始找 字符串.rfind(‘’)
index = old_name.rfind('.')
print(index)
#字符串切片 [开始:结束:切片]
#开始位置不写 默认从0开始
s = old_name[:index]
print(s)
ss = old_name[index:]
print(ss)
new_name = old_name[:index] + '[备份]' + old_name[index:]
print(new_name)
#打开源文件和备份文件
old_f = open(old_name,'rb')
new_f = open(new_name,'wb') #如果不存在备份文件 创建该文件不能使用rb
#源文件读取 备份文件写入
#如果不确定目标文件大小 循环读取写入 当读取出来的数据没有了 终止循环
while True:
con = old_f.read(1024)
if len(con) == 0:
break #读取完成
new_f.write(con)
文件夹和文件夹操作
1. 导入os模块
Import os
2. 使用os模块的相关功能
Os.函数名()
os.rename(原文件名,目标文件名) #也可以用于文件夹命名
Os.remove(目标文件名)
Os.mkdir(文件夹名字) #创建文件夹
os.mkdir('document1')
OS.rmdir(文件夹名字) #删除文件夹
os.rmdir('document1')
Os.getcwd() #获取当前目录
OS.chdir() #改变文件路径
print(os.getcwd())#当前文件所在的路径
os.mkdir('aa')
os.chdir('aa')
os.mkdir('bb')
Os.listdir() 显示当前路径目录列表