Python——文件介绍及练习
一.文件
1.文件相关操作
打开文件的三步:打开—>操作—>关闭
- 打开文件
f = open('/zll/passwdd','w')
- 读操作
- 写操作
注:添加了w代表写但是出现了错误是因为文件本身没有打开写的权限
修改实现如下: 发现没有返回值,但是打开原文件之后发现已写
- 关闭
f.close()
2.文件读写
-
r:(默认)
只能读,不能写
读取的文件不存在会有报错 -
r+:
可以执行读写操作
文件不存在报错
默认情况下从文件指针位置开始写入
注:在进行该操作时写入的东西会覆盖原文件的内容. -
w:
write only
会清空文件之前的内容
文件不存在,不会报错会创建新的文件 -
w+
rw
会清空文件内容
文件不存在不报错,会创建新的文件 -
a:
write only
不会清空文件内容
文件不存在,不会报错 -
a+:
rw
不清空文件内容,再末尾追加
文件不存在,不报错 -
查看文件指针当前所在位置
注:在上图中添加python是从指针0开始到指针6结束,在读取的时候发现没有添加的内容,但是在shell中打开原文件就可以看到写入的值在指针0到6
3.文件的读取操作
-
readlines():读取文件内容返回一个列表,列表的元素分别为文件的行内容
head -c 4 /etc/passwd ##查看该文件中的前4个字节
注:默认情况下读取文件的所有内容,小文件可以直接用read读取,如果是大文件(文件大小>内存大小),不能通过read一次性读取所有内容 -
文件的写入操作
-
移动文件指针
seek方法,移动指针
seek的第一个参数是偏移量:>0,表示向右移动,<0表示向左移动
seek的第二个参数是:
0:移动指针到文件开头
1:不移动指针
2:移动指针到末尾
4.非纯文本文件的读取 -
读取文本文件
r r+ w w+ a a+ -
读取二进制文件
rb rb+ wb wb+ ab ab+
实现非纯文本文件的复制如下:
可以看到f2中的非纯文本与f1相同。
5.上下文管理器
- 打开文件的另一种简便方法:
- 同时打开俩个文件
二.练习
题目要求:
创建文件data.txt,文件共100000行,每行存放一个1~100之间的整数