标准库OS常用命令
如果要使用os库,那么我们需要做一些准备工作,比如新建一个文件夹,并且把当前目录改成这个文件夹~
如下图这样:
(补充一句…我认为路径还是全英文比较好…)
- 修改文件夹或文件名
>>>os.rename('a.txt','b.py')
- 删除一个文件
>>>os.remove('a.py')
- 我们可以通过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:表示文件末尾