文件操作管理
打开文件的步骤:打开 --> 操作 --> 关闭
第一步:首先我们先将我们要操作的文件复制到/tmp下


看文件是否可读可写
#打开文件
f = open('/tmp/passwd')
#文件是否可读
print(f.readable())
#文件是否可写
print(f.writable())
#关闭文件
f.close()

对文件进行读操作
#打开文件
f = open('/tmp/passwd')
#读操作
content = f.read()
print(content)
#关闭文件
f.close()

对文件进行写操作,会报错,因为不可写:
#打开文件
f = open('/tmp/passwd')
f.write('python')
#关闭文件
f.close()

纯文本可进行的操作标识:
<一>
r:(默认)
-只能读,不能写
-读取的文件不存在,会报错
r+:
-可读写
-文件不存在,报错
-默认从文件指针所在位置开始写入
实验操作如下:


r+实验步骤如下
首先赋予这个文件满权限,为了保证普通用户可写。

为了实验效果,将要操作的文件修改为如下所示:





<二>
w:
-只能写
-会清空文件之前的内容
-文件不存在,不会报错,会创建新的文件并写入
w+:
-可读写
-会清空文件内容
-文件不存在,不会报错,会创建新的文件并写入
实验操作步骤如下:
文件原本内容:



读的话会报错



w+的实验操作步骤如下:



<三>
a:
-只能写
-文件不存在,不报错
-不会清空文件内容
a+:
-可读写
-文件不存在,不报错
-不会清空文件内容


此时yyy这个文件不存在


创建了一个yyy文件并写入内容

<四>
readlines():读取文件内容,返回一个列表,列表里的元素分别为文件
每行的内容
print(f.read(4)) 读取前四个字符
readlines待补充
<五>
seek方法,移动指针
seek第一个参数是偏移量:>0,代表向右移动,<0,代表向左移动
seek第二个参数是:
0:移动指针到文件开头
1:不移动指针
2:移动指针到末尾
f = open('/tmp/passwd','r+')
print(f.tell())
print(f.write('redhat'))
print(f.tell())
print(f.read())
f.seek(0,0)
print(f.tell())
print(f.read())
f.close()

<六>读取二进制文件
读取二进制文件
rb rb+ wb wb+ ab ab+
读取"hello.png"的二进制文件,如果没有出现报错,就说明读取成功(hello.png已经提前导入到文件中)
f = open('redhat.jpg',mode='rb')
content = f.read()
f.close()


这个代码可以将hello.png复制一份成redhat.png
f = open('redhat.jpg',mode='rb')
content = f.read()
f.close()
f1 = open('hello.jpg',mode='wb')
f1.write(content)
f1.close()


<七>上下文管理器(自动关闭文件)
f = open('/tmp/passwd')
with open('/tmp/passwd') as f:
print(f.read())

with open('/tmp/passwd') as f1,\
open('/tmp/passwd1','w+') as f2:
f2.write(f1.read()) 将f1的读取内容写到f2中,变向复制
f2.seek(0,0)
print(f2.read())

练习:
创建文件data.txt,共100000行,每行存放一个1~100之间的整数
import random
f = open('data.txt','w+')
for i in range(100000):
f.write(str(random.randint(1,100)) + '\n')
f.seek(0,0)
print(f.read())
f.close()


本文详细介绍了Python中的文件操作,包括文件的读、写和管理。通过实例展示了如何检查文件的读写权限,使用'r+'、'w+'模式进行读写操作,并解释了read、write、seek等方法的用法。此外,还提到了二进制文件的读取和上下文管理器在自动关闭文件方面的作用。

3834

被折叠的 条评论
为什么被折叠?



