文件知识点梳理
1.文件的概述:
-
1.文件的基本定义:
文件是用来存储数据的,文件是存储在外存中的
若非存储介质损坏,文件可以永久存储数据. -
2.文件的存储形式:
任何格式文件在计算机内部是以二进制形式字符序列存储的. -
3.操作文件的步骤:
- 1.文件的打开;
- open(“路径”,“方式”)
当模式为"w"时,如果文件不存在,会先创建一个文件,然后以可写的方式打开;
注意文件的路径问题,如果目录不存在会报错;
关于文件的路径问题:可以用两个"\",也可以用"/"进行分隔;
关于访问模式,可见E盘的文档操作文件夹;
以二进制形式读写数据时,以二进制形式打开该文件,是字符串二进制数据;
"w"与"a"区别:都是写,但是w会覆盖源文件.a是在结尾追加;
“r+”/"w+"支持读写:区别是:以 "r+"方式打开时,若文件不存在会报错,以"w+"方式打开时,若文件不存在会创建新文件;
- open(“路径”,“方式”)
- 2.文件的读写;
- 读取方式:
- 1.f.read() 不写参数,一次读取(一次全拿出来)全部数据文件,适用于数据比较少的情况.
- 2.f.read(n) 一次读取n个字符 返回一个字符串类型的数据 读不完的会在当前相对位置接着读,并不会返回"0"位置
- 3.f.readline(n) 一次读取一行,n表示读取一行中的几个字符.(复制时常用)
- 4.f.readlines() 每一行作为列表的一个元素,输出列表.
- 读取方式:
- 3.文件的关闭.
- f.close()
注:在Python中亦如此.
- f.close()
- 1.文件的打开;
-
4.文件的复制: ex:E:\exercise\day_08\day_08_文件的复制
- 1.打开两个文件,一个只读(源文件),一个可写(目标文件);
- 2.while无限循环读取文件中的数据,每次一行;
- 3.把读到的一行数据写入;
- 4.关闭两个文件.
-
5.文件的定位读写:
- 1.tell方法:
获取当前的位置,f.tell()无参. - 2.seek方法: # Python3中非二进制文件offset和whence中至少有一个参数必须设置为0.
# 也就是说,要修改非初始位置时,读写方式必须为二进制,即"rb"或"rb+"“rw+”
修改当前的位置,f.seek(offset,whence)
offset:偏移量
whence:从何位置何方向:
0:表示文件开头
1:表示到当前位置
2:表示文件末尾 - 注:此时,如果想要让当前位置进行相对偏移,现在有两种方法:
1:seek()方法;
2:read()方法;让其读取几个字符,当前位置会发生改变.
- 1.tell方法:
-
6.os方法:
- 1.文件的重命名:
os.rename(“旧名字”,“新名字”) 修改当前目录下的文件名字 - 2.获取当前目录:
os.getcwd() 返回当前文件的根目录,默认就是工程的根目录 - 3.切换目录:
os.chdir() 不写路径,默认是切换当前目录下的文件/写路径可以切换其他目录文件/文件存在会报错 - 4.获得目录列表: 获得指定目录下的文件和文件夹的列表
os.listdir() 里面无参传递:返回此目录下的文件列表.
传参: 指定目录下的文件列表,包括隐藏文件 - 5.删除文件夹: 如果目录下面有子文件或子文件夹,则报错.(若要删除,必须先清空)
os.rmdir(目录名) 要想删除指定路径的文件,一定要写全目录名 - 6.删除文件:
os.remove(文件名) 如果文件不存在,会报错找不到文件. - 7.创建文件夹:
os.mkdir(文件夹名字) 如果文件夹已经存在,则会报错已存在该文件.
- 1.文件的重命名:
-
7.批量修改文件名:
步骤:
1.获取目标文件路径(os.chdir())
2.获取当前文件列表,并设置一个变量用来接收其返回值.(file_list = os.listdir())
3.遍历文件列表得到每个文件名
4.边遍历边重命名.(os.rename()) -
8.eval方法:
可以把含有相关容器特征的字符串转成相关容器.- 语法:
eval(source[, globals[, locals]]) -> value - 参数:
source:一个Python表达式或函数compile()返回的代码对象
globals:可选。必须是dictionary
locals:可选。任意map对象
- 语法:
-
9.repr()方法:
-
将Python的变量和表达式转换为字符串表示