Python Learn day06

本文详细介绍了Python中的文件操作,包括文件概念(视作对象),Linux下的文件类型,不同打开和读写方式(如open(),read(),write()),以及文件指针的移动和文件对象的属性。特别强调了文件关闭的必要性及Python标准文件(sys.stdin,sys.stdout,sys.stderr)的使用。

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

九术AI

Python Learn day06

本章节讲解内容:

  1. 文件概念
  2. 文件打开方式
  3. 文件读写操作
  4. 文件指针
  5. 文件对象属性

文件概念

文件:Python 中文件是对象

linux 文件:一切设备都可以看成文件。例如:磁盘文件、管道、wa 那个罗 Sockect、外设等

文件属性:用户,读、写、执行权限等

文件打开和读写方式

  • 文件打开方法:open(name[,mode[buf]])
name:文件名
        mode:打开方式(只读、只写等)
        buf:缓冲 buffering的大小
  • 文件读取方式:
read([size]):读取文件,默认读取全部,设置了 size 则读取 size 个字节
        readline([size]):读取一行
        readlines([size]):读取全部,以一行一行组成列表的形式返回

默认读取的 size 缓存大小是8192个字节左右

也就是说但我们使用 readlines([size])的时候,每一次读取8192个字节,若文件的内容和8192的缓存大小接近则全部读取,若不到8192个字节则只读取文件的全部内容。

可以使用 iter 迭代器实现读取文件全部内容。推荐使用该方式访问。

# 首先打开一个文件
        f = open('python.txt','w+')
        # 然后转换成 iter 类型
        iter_f = iter(f)
        # 最后使用迭代器进行读取
        for iters in iter
            iter iter_f
        for iters in iter_f
  • 文件写入方式:
write(str):将字符串写入文件
        writelines(sequence_of_string):写多行到文件

python 有写缓存的机制,因此,但我们写入内容后如果不调用 close()方法,文件是没有写入内容的。

  • Python 写磁盘时机:
  1. 主动调用 close()或 flush()方法,写缓存到磁盘;
  2. 写入数据量大于或者等于写缓存,写缓存同步到磁盘;

文件关闭

  • Python 中为什么需要关闭文件:
  1. 将写缓存同步到磁盘;
  2. linux 系统中每个进程打开文件的个数是有限制的;
  3. 如果打开文件数到了系统限制,再打开文件就会失败;
  • linux 系统中查看系统限制:
>ps 查看进程
        >cat /proc/UID(进程 ID)/limite

文件指针

  • Python 文件指针操作:
seek(offset[,whence]):移动文件指针;
            offset:偏移量,可以为负数
            whence:偏移相对位置
  • Python 指针定位方式:
os.SEEK_SET:相对文件起始位置  0
        os.SEEK_CUR:相对文件当前位置  1
        os.SEEK_END:相对文件结尾位置  2
  • 当我们使用 seek 的时候长度超过了文本的长度就 会报错。
  • Python 文件属性:
  1. file.fileno():文件描述符
  2. file.mode:文件打开权限
  3. file.encoding:文件编码格式
  4. file.closed:文件是否关闭
  • Python 标准文件:
  1. sys.stdin:文件标准输入
  2. sys.stdout:文件标准输出
  3. sys.stderr:文件标准错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CarolLXW

你的鼓励是我最大的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值