python——文件操作管理

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

文件操作管理

打开文件的步骤:打开 --> 操作 --> 关闭

第一步:首先我们先将我们要操作的文件复制到/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()

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值