python中基于OS模块的文件操作

本文介绍了Python中基于OS模块进行文件操作的方法,包括文件的生成、读取、权限设置、非纯文本文件的读取、文件的常用属性与方法、安全读取、大文件读取以及OS模块在文件和目录操作中的应用。通过实例展示了如何统计IP频率、读写文件、操作文件指针、使用上下文管理器以及遍历目录等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 文件操作要求
生成一个文件 ips.txt ,要求120000行,每行随机为172.25.154.0/24段的ip
读取ips.txt文件统计这个文件中ip出现频率排前10的ip

import random

with open('ips.txt', "w") as f:
    for i in range(240000):
        f.write('172.25.254.' + str(random.randint(1, 254)) + '\n')

from collections import Counter


def most_count(filename='ips.txt', n=10):
    with open(filename) as f:
        count = Counter(f)
    return [i[0].strip() for i in count.most_common(n)]


print(most_count())

二 文件的读取
文件读取三部曲:打开—> 操作—>关闭
1)打开

f=open('/etc/passwd')
print(f)

这里写图片描述
可以看到,是一个对象,如果要看到其内容,需对其进一步操作
2)操作

content=f.read()
print(content)

这里写图片描述
通过read来进行对文件的查看
3)关闭

f.close()

关闭文件
4)对文件操作时的权限
open(文件名,权限设置)
如果不对权限进行设置:权限设置默认为 r 权限
此处共有6中权限,分别为:
r:只能执行读的权力,没有写的权力,当读取的文件不存在时,会报错
r+:可以执行读写操作,默认情况下,从文件指针所在位置开始写入,当读取的文件不存在时,会报错
w:只有写入的权限,但是当写入时,会先清空文件内容,当文件不存在时,会生成此文件,不会报错
w+:可以执行读写操作,但是当写入时,会先清空文件内容,当文件不存在时,会生成此文件,不会报错
a:只有写入的权力,写入时,不会清空文件内容,当文件不存在时,会生成此文件,不会报错
a+:可以执行读写的权力,写入时,不会清空文件内容,当文件不存在时,会生成此文件,不会报错
5)判断文件的权限,是否具有读与写的权限

print(f.readable())
print(f.writable())

这里写图片描述
如果可读或可写的话,返回True,否则,返回False
三 非纯文本文件的读取
如果读取图片, 音乐或者视频(非文本文件), 需要通过二进制的方式进行读取与写入;b

#先对图片进行读取,保存到一个文件中
f1=open('hello.png','rb')
content=f1.read()
f1.close()
#再对新的图片,将该文件内容进行写入复制
f2=open('world.png','wb')
f2.write(content)
f2.close()

这里写图片描述
可以看到图片world.png的成功建立
四 文件的常用属性
1) suffer(缓冲区对象)

f=open('/mnt/passwd')
#buffer缓冲区对象
print(f.buffer)

这里写图片描述
suffer就是一个缓冲区对象
那么怎样来对缓冲区的内容进行读取呢
这里写图片描述
将缓冲区对象赋值给一个变量,通过遍历变量的内容来读取缓冲区的内容
这里写图片描述
当只是读取文件时, buffer里面没有内容
这里写图片描述
此时写入的内容在缓冲区里面,并没有真正写入磁盘文件
只有再执行 f.close 的时候,写入的内容才会真正的写入磁盘当中
2) 判断文件对象是否关闭,
用 f.closed 来判断
已经关闭返回True,否则,返回False
3) 文件号

f=open('/mnt/passwd')
print(f.fileno())

这里写图片描述
文件号为3
4) 文件对象

f=open('/mnt/passwd')
print(f.name)

这里写图片描述
文件命可以看到为 /mnt/passwd
5) 查看文件对象的相关信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值