32文件操作
# 目标
- 文件操作的作用
# 一.文件的作用
思考:什么是文件?
思考:文件操作包含什么?
答:打开,关闭,读,写,复制.....
思考:文件操作的作用是什么?
答:读取内容,写入内容,备份内容.....
总结:文件操作的作用就是把一些内容(数据)存储存放起来,可以让程序下一次执行的时候直接使用
# 二. 文件的基本操作
# 2.1文件操作步骤
- 1.打开文件
- 2.读写等操作
- 3.关闭文件
注意:可以只打开和关闭文件,不进行任何的读写操作
# 2.1.1 打开
在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法如下:
open(file, mode)
1
file:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读,写入,追加等
# 2.1.1.1 打开文件模式
# 2.1.1.2 快速体验
f = open('test.txt','w')
1
注意:此时的f是open函数的文件对象
# 2.1.2 读写
# 2.1.2.1 写
- 语法
对象.write('内容')
1
- 体验
# 1.打开文件
f = open('test.txt','w')
# 2.文件写入
f.write('hello world')
# 3.关闭文件
f.close()
1
2
3
4
5
6
2
3
4
5
6
注意:
1.
w
和a
模式:如果文件不存在则创建该文件;如果文件存在,w
模式先清空再写入,a
模式直接末尾追加。2.
r
模式:如果文件不存在则报错
# 2.1.2.2 读
read()
文件对象.read(num)
1
num
表示要从文件中读取的数据的长度(单位是字节),如果没有传入num
,那么就表示读取文件中所有的数据。
readlines()
readlines
可以按照行
的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
f =open('test.txt','r')
content = f.readlines()
# 打印结果['helloworldyaoyaopython\n', 'laoyang\n']
print(content)
# 关闭文件
f.close()
1
2
3
4
5
6
2
3
4
5
6
readline()
readline()
一次读取一行内容
f = open('test.txt')
content1 = f.readline()
print(f'第一行:{content1}')
content2=f.readline()
print(f'第二行:{content2}')
#关闭文件
f.close()
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
执行效果
# 2.1.3 关闭
文件对象.close()
1
# 2.1.4 使用“资源管理器”-with来操作文件
在读取文件的时候,有的时候会遇到读取文件抛出异常。这个时候,不仅会阻塞程序运行,并且文件资源会被占用
def write_data_t():
data = get_random_name()
with open('data.txt','a+') as f:
f.write(data)
f.write('\n')
1
2
3
4
5
2
3
4
5
这个时候就可以使用with
# 三、实战案例
需求:对随机生成进行改造,使其能够将数据写入到文件当中
def write_data():
data = get_random_name()
f = open('data.txt','a+')
f.write(data)
f.write('\n')
f.close()
1
2
3
4
5
6
2
3
4
5
6
思考:
1.批量生成数据,应该如何编写?
2.脱离pycharm,如何使用这个脚本?
# 附录.文件和文件夹的操作
在python中文件和文件夹的操作要借助os
模块里面的相关功能,具体步骤如下:
一.导入os模块
import os
二.使用os模块相关功能
os.函数名()
1.文件重命名
os.rename(目标文件名,新文件名)
2.删除文件
os.remove(目标文件名)
3.创建文件夹
os.mkdir(文件夹名字)
4.删除文件夹
os.rmdir(文件夹名字)
5.获取当前目录
os.getcwd()
6.改变默认目录
os.chdir(目录)
7.获取目录列表
os.listdir(目录)
8.创建多层文件夹
os.makedirs('a/b/c')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
上次更新: 2023/09/05, 02:16:11