第一节 文件的操作
一、文件的操作步骤
1.文件的操作步骤包括三步:
(1)打开
(2)操作
(3)关闭
2.文件操作的三个必须有打开和关闭两个步骤,可以没有操作步骤。
3.关于打开的含义有两层:一是如果文件存在,则会被打开;二是如果不存在,则会被创建。
4.文件的关闭相当于保存,同时可以释放计算机内存。
二、文件操作知识扩展
Python对文本文件和二进制文件采用统一的操作步骤,即“打开―操作―关闭”,如图7.1所示。操作系统中的文件默认处于存储状态,首先需要将其打开,使得当前程序有权操作这个文件,打开不存在的文件系统可以创建这个文件。打开后的文件处于占用状态,此时,另一个进程不能操作这个文件。可以通过一组方法读取文件的内容或向文件写入内容,操作之后需要将文件关闭,关闭将释放对文件的控制使文件恢复成存储状态,此时,另一个进程将能够操作这个文件。
三、文件的打开方式
模式 | 描述 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。以二进制格式打开一个文件用于追加。 |
ab | 如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
1.关于访问模式的总结
(1)r、w、a三个模式属于主访问模式,也称为基础访问模式。
(2)带b均为二进制格式
(3)带+均为可读可写
(4)带b+均为二进制+可读可写
(5)r和w模式下,光标指标均位于文件开头,而a模式下光标指标会放在文件结尾。
2.r+、w+、a+的总结
r+: r没有该文件则报错;文件指针在开头,所以能读取出来数据
w+:没有该文件会新建文件:w特点:文件指针在开头,用新内容覆盖原内容
a+:没有该文件会新建文件:文件指针在结尾,无法读取数据(文件指针后面没有数据)
3.r是read的缩写,含义是读;w是write的缩写,含义是写;a是add的缩写,含义是追加。
使用r模式打开文件时,如果文件存在,则可以正常打开;如果文件不存在,则代码运行时会报错。
4.关于三种基础访问模式的用法总结
r:只读,如果文件不存在,报错;执行写入,会错,因为r表示只读,不支持写入。
w:只写,如果文件不存在,新建文件;执行写入,会覆盖原有内容
a:追加,如果文件不存在,新建文件;执行写入,在原有内容基础上,追加新内容
访问模式参数可以省略,如果省略表示访问模式为r。省略访问模式的代码写法:
f=open(“文件名”)
第二节 文件操作函数
一、打开
open()函数
1.语法:
open(name,mode)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。name可以使用一个表示文件路径的变量。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
2.示例代码:
f= open('test.txt','w')
注意:此时的f是open函数的文件对象。
二、操作
1.写
write()函数
语法:
f.write('内容')
2.读
(1)read()
语法:
f.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。
如果文件有换行符,read(num)设置参数时,读取到的个数和参数不一致,是因位换行符也占用一个字符
(2)readline()函数
语法:
f.readline()
readline()—次读取一行内容。好像是从开始至结尾,每次只读取一行内容。
(3)readlines()函数
语法:
f.readlines()
作用:readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
如果有换行符,表示中元素后面会连同换行符一起读取出来。
总结:为方便调用读取的内容,最好将读取的内容赋值给一个变量。
3.seek
seek()函数
作用:用来移动文件指针。
语法如下:
f.seek(偏移量,起始位置)
起始位置参数的含义:
0:文件开头
1:当前位置
2:文件结尾
三、关闭
close()函数
语法:
f.close()
第三节 文件和文件夹操作模块os
方法 | 描述 |
os.rename(旧文件名,新文件名) | 用于文件和文件侠重命名。可以为指定路径中的文件夹重命名。如果文件夹不存在,则代码报错。 |
os.remove(文件名) | 只用于删除文件 |
os.mkdir(文件夹名) | 创建文件夹(一级目录)。可以在指定路径中创建文件夹方法:路径/文件夹名。如果文件夹存在,则代码会报错。创建文件时,路径的前一级目录必须存在,否则会报错。 |
os.rmdir(文件夹名) | 只用于删除文件夹。可以在指定路径中创建文件夹方法:路径/文件夹名。如果文件夹不存在,则代码会报错 |
os.chdir(路径) | 修改默认目录 |
os.getcwd() | 获取当前目录 |
os.listdir(目录) | 以列表形式获取文件名和目录名 |
os._exit() | 退出当前进程 |
os.exec() | 执行一个新的程序,有空好好研究一下此方法 |
扩展:
1.os.path模块中的方法
os.path.isdir(文件路径) 判读路径是否存在,如果存在,则返回True,否则返回False
2.单词释义:
mkdir 是英语make directory的缩写。directory在计算机行业有文件和目录的含义。
3.学习说明
关于文件操作的模块,创建文件夹,删除文件夹,在D:\Day6\Mycode\Day22\os.py中试验成功。
但是在D:\MyCode\DaZongJie\16.os模块文件中书写代码时会出错。估计是因为UFT-8之类的编码设置错误原因造成的。
第四节 文件操作的补充知识
一、文件路径的写法
1.使用“/”书写,这种格式同windows路径写法。技巧:可以直接在文件中复制文件的路径,粘贴在python中即可。
path1='D:/python笔记备份/Python大总结/lujing.txt'
2. 1.使用“\”书写,这种格式同windows路径写法。优先推荐使用此写法,在os模块使用第一种写法会报错
path2='D:\python笔记备份\Python大总结\lujing.txt'
二、读取.txt文件中的中文
f=open('1.txt',encoding='UTF-8')
将文件编码设置成UTF-8,UTF8或utf8均可以正常显示,但是如果设置成utf-8则不可以正常显示。
三、环境变量
环境变化的作用是指示某些特定的系统文件所在的位置。
第五节 os.path模块
1.abspath()方法--获取绝对路径
abspathO)方法用于返回文件或者目录的绝对路径。
语法格式如下:
os .path.abspath(path)
参数说明:
path:表示要获取绝对路径的相对路径,可以是文件也可以是目录。
返回值:返回获取到的绝对路径。
2.dirname()方法---获取路径中的目录
dirname0)方法用于从一个路径中提取目录。
语法:
os.path.dirname(path)
参数说明:
path:表示要提取目录的路径。
返回值:返回提取后的目录。
3.join()方法--拼接路径
join0 方法用于将两个或者多个路径拼接到一起组成一个新的路径。语法格式如下:
os.path.join(path,*paths)
参数说明:
path:表示要拼接的文件路径
*paths:表示要拼接的多个文件路径,这些路径间使用逗号进行分隔。如果在要拼接的路径中,没有一个绝对路径,那么最后拼接出来的将是一个相对路径。
返回值:拼接后的路径。
第六节 with上下文操作
个人总结:
with open() as f:
相当于
f=open()
f.close()
待总结:学习资料:揭秘Python中的with语句_哔哩哔哩_bilibili