1.读取纯文本文件–文件及文件读写
打开文件的三步:打开->操作->关闭
注意:
1.最大可以打开的文件的数量
2.打开后关闭的原因是因为这样不会浪费文字描述符
读取文本文件:
r r+ w w+ a a+
读取二进制文件:
rb rb+ wb wb+ ab ab+
文件读写:
r:(默认)
-只能读,不能写
-读取文件不存在,会报错
r+:
-可读写
-读取文件不存在,会报错
w:
-write only
-会清空文件之前的内容
-文件不存在,不会报错,会创建新的文件并写入
w+:
-rw
-会清空文件内容
-文件不存在,不报错,会创建新的文件
a:
-write only
-不会清空文件内容
-文件不存在,不会报错,会创建新的文件并写入
a+:
-rw
-文件不存在不报错
-不会清空文件内容
注意:
工作中一般不用’*+‘
实验:
1.打开关闭文件的实验如下:
-------->(1)题目要求:
举例说明如何打开并关闭文件,同时要求将文件中的内容输出
-------->代码如下:
<1>首先将/etc/passwd 备份到/tmp/passwd下(其目的仅仅为了证明文件的内容不会丢失或影响)
[root@foundation66 ~]# cp /etc/passwd /tmp/passwd
<2>在python的IDE中写入以下代码:
#打开文件
f=open('/tmp/passwd')
#读操作
content=f.read()
print(content)
#关闭
f.close()
-------->测试结果:
-------->(2)题目要求:
尝试显示文件的是否可写或可读
-------->代码如下:
#打开文件
f=open('/tmp/passwd')
print(f.writable())
print(f.readable())
#关闭
f.close()
-------->测试结果:
结果说明,此文件不可写,但可以读
2.关于r的实验:
-------->(1)题目要求:
r:如果文件存在时,可以进行读操作
-------->代码如下:
#打开文件
f=open('/tmp/passwd','r')
#读操作
content=f.read()
print(content)
print(f.writable())
print(f.readable())
#关闭
f.close()
-------->测试结果:
-------->(2)题目要求:
r:如果文件不存在时,会出现报错
-------->代码如下:
#打开文件
f=open('/tmp/passwdd','r')
#读操作
content=f.read()
print(content)
print(f.writable())
print(f.readable())
#关闭
f.close()
-------->测试结果:
-------->(3)题目要求:
r+:如果文件存在时,可以对文件进行读写操作
-------->代码如下:
<1>更改/tmp/passwd的文件权限为777
[root@foundation66 ~]# chmod 777 /tmp/passwd
[root@foundation66 ~]# ll /tmp/passwd
<2>在python中写入的代码如下:
#打开文件
f=open('/tmp/passwd','r+')
#读操作
content=f.read()
print(content)
#写操作
f.write('hello')
print(f.writable())
print(f.readable())
#关闭
f.close()
注意:
此处的写操作无法读出文件的内容是因为指针移动了,如果想要直接读取文件的内容,需要将指针重新移到0,在命令行式shell中可以查看到更改的信息:
-------->测试结果: