Python os文件系统简述

本文介绍了Python标准库中的os模块,包括如何创建、修改和删除文件夹。接着详细阐述了文件的基本概念,区分了文本文件和二进制文件,并讲解了文件的打开、关闭、读写操作。open()函数的7种打开模式被提及,强调了在使用完毕后关闭文件的重要性。此外,文章还讨论了f.read()的用法以及文件指针的管理,如tell()和seek()方法,使读者能更好地掌握Python中的文件操作技巧。

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

标准库OS常用命令

如果要使用os库,那么我们需要做一些准备工作,比如新建一个文件夹,并且把当前目录改成这个文件夹~
如下图这样:
(补充一句…我认为路径还是全英文比较好…)
在这里插入图片描述

  1. 修改文件夹或文件名
>>>os.rename('a.txt','b.py')
  1. 删除一个文件
>>>os.remove('a.py')
  1. 我们可以通过dir来查看os的相关操作。
    在这里插入图片描述

文件的打开与关闭

文件概述

  • 文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象,类似地,函数是程序的集合和抽象。用文件形式组织和表达数据更有效也更为灵活。文件包括两种类型:文本文件二进制文件
  • 二进制文件直接由比特0和比特1组成,没有统一字符编码,文件内部数据的组织格式与文件用途有关。二进制文件和文本文件最主要的区别在于是否有统一的字符编码无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,打开后的操作不同。

文件如何操作

我们对每一个文件,在系统中,文件就像一个个图标,如果我们需要修改这个文件,那么我就需要先打开这个文件:
【双击打开文件】→【修改文件】→【文件使用完毕】→【关闭文件】

  • Python中可以用open()打开文件
>>>open(file,mode='r',buffering = -1)

该方法中参数file一般为文件的路径名;参数mode用于设置文件的打开方式,默认值为"r",表示以只读模式打开文件;参数的buffering用于设置访问文件时采用的缓冲方式,默认值为-1,表示采用系统默认的缓冲机制,若使用open()方法成功打开文件,则返回一个文件流,否则设置errno。

open()函数提供7种基本的打开模式

打开方式含义
‘r’只读模式,如果文件不存在,返回异常FileNotFoundError,默认值
‘w’覆盖写模式,文件不存在则创建,存在则完全覆盖源文件
‘x’创建写模式,文件不存在则创建,存在则返回异常FileExistsError
‘a’追加写模式,文件不存在则创建,存在则在原文件最后追加内容
‘b’二进制文件模式
‘t’文本文件模式,默认值
‘+’与r/w/x/a一同使用,在原功能基础上增加同时读写功能

文件关闭

>>>f.close( )

程序执行完毕后,系统会关闭由该程序打开的文件,但更好的做法,是在文件使用完毕后,由程序调用close()方法关闭文件。

实际上,计算机中可打开的文件数量是有限的,每打开一个文件,就会占用一个”名额”,当该“名额”耗尽后, 系统将无法再打开新的文件。此外,当文件以缓冲方式打开时,磁盘文件与内存间的读写并不是即时的,若程序因异常关闭,可能导致缓冲区中的数据无法写入文件,造成数据丢失。

综上所述,在文件使用完毕后,及时使用close()函数关闭文件是有必要的。

在这里插入图片描述

文件的读与写

f.read()的用法

使用read,读完一次后,文件指针回到文档最后,再次读内容为空。
在这里插入图片描述

  • 若关闭文档后打开,指针会回到文档起点
  • 还可以人为选择读取的字节数
  • 也可以选择从第几号位置开始读取
    在这里插入图片描述

tell与seek

经过学习我们发现,在文件的一次打开与关闭之间进行的读写操作都是连续的,程序总是从上次读写的位置继续向下进行读写操作。实际上,每个文件对象都有一个称为“文件读写位置”的属性,该属性用于记录文件当前读写的位置。
Python中提供了一些获取文件读写 位置以及操作文件读写位置的方法,下面将对这些方法进行讲解。

tell()

用户可通过tel(0方法获取文件当前的读写位置。以操作文件a.txt为例,tell()的用法如下所示。

 >>> f = open("a.txt" )>>> f.tell()0

 >>> f.read(5)'hello'

 >>> f.tell()5

 >>> f.close()

由以上示例可知,打开一个文件后,文件默认的读写位置为0;当对文件进行读操作后,文件的读写位置也随之移动。

f.seek()

一般情况下,文件的读写是顺序的,但并非每次读写都需从当前位置开始。Python提供了seek()方法,使用该方法可控制文件的读写位置,实现文件的随机读写。

seek()方法的声明如下:

>>>seek(offset , from)

其中参数offset表示偏移量,即读写位置需要移动的字节数; from用于指定文件的读写位置,该参数的取值为: 0、1、2,它们代表的含义分别如下:

  • 0:表示文件开头
  • 1:表示使用当前读写位置
  • 2:表示文件末尾
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值