Python包之OS

Python027

Python包之OS,第1张

参考: https://docs.python.org/3/library/os.html

Python中对OS模块的定位是:提供了使用操作系统的工具接口。

如果你想读写文件,可以参考open();

如果你想操作文件路径,参考os.path模块;

如果你想在命令行读取所有文件的所有行,参考fileinput模块;

如果你想创建临时文件或目录,参考tempfile模块;

如果你想更高级的文件和路径处理,参考shutil模块;

内置的OSError异常类型,比如在使用os模块中的函数接口时,在参数中提供了无效的文件或路径,就回报错os.error。

该变量返回当前操作系统的类型,当前只注册了3个值:分别是posix , nt , java, 对应linux/windows/java虚拟机。

在Python中,文件名,命令行参数和环境变量都是用字符串类型来表示。

接下来的这些函数和数据提供了当前进程和用户的信息状态和操作接口。

返回进程控制终端的文件名,适用于Unix系统。

返回字符串到环境变量的映射。

改变当前工作目录到指定的路径,path为要切换到的新路径。

通过文件描述符改变当前工作目录。

文件描述符是内核为了高效管理已经被打开的文件所创建的索引,

进程通过文件描述符来访问文件。 在程序刚启动的时候默认有3个文件描述符:0(标准输入),1(标准输出),2(标准错误),系统默认提供了 0~2的文件描述符,之后的 当我们进行 open,create等操作的时候 自动添加进表

所以int creat(const char * ,mode_t)返回的文件int 就是你所进行操作的文件的唯一身份标示,

然后你只要拿着这个ID 然后告诉系统给我找xx, write(int fd,char *buf,int lenght) 通过fd得到准确文件 然后写入。

当我们新建creat,打开open 之后,得到的fd 是从3开始的 因为前面的三个被系统占了在OS X系统下测试 文件描述符表 自增,当释放close之后,fd变成-1,如果再继续新建 则填补之前的空缺。

返回当前工作目录。

把字符串类型的文件名翻译成bytes类型的文件名;os.fsdecode()实现相反的功能。

返回路径的文件系统表示。

如果环境变量中存在key,返回环境变量key的值,否则返回default的值。

设置环境变量key的值为value。

使用当前uid/gid检测对路径path是否有访问权限。其中,path为要检测是否有权限的路径,mode为权限类别,值可以为os.F_OK、os.R_OK、os.W_OK、os.X_OK中的一个或多个;

切换当前的工作路径为path指定的路径。

设置路径path的标记为flags,flags为数字标记,多个flags可以使用or组合。flags可以为以下值或以下值的组合:

更改文件或目录的权限。

path -- 文件名路径或目录路径

mode -- 可用以下选项按位或操作生成, 目录的读权限表示可以获取目录里文件名列表, 写权限表示可以获取文件并且可以修改内容,执行权限表示可以把工作目录切换到此目录 ,删除添加目录里的文件必须同时有写和执行权限 ,文件权限以用户id->组id->其它顺序检验,最先匹配的允许或禁止权限被应用。

更改路径的拥有者和group id为uid和gid。如果不修改可以设置为-1,并且需要超级用户权限来执行权限修改操作。

path -- 设置权限的文件路径

uid -- 所属用户ID

gid -- 所属用户组ID

更改当前进程的根目录为path。

返回当前工作目录。

返回path目录路径下的文件列表,列表没有固定的顺序。

创建目录path。如果目录已经存在,会抛出异常FileExistsError。

递归的目录创建,递归的意思是创建所有到达叶子目录的中间目录。

从原始设备号(通常是stat中的st_dev或st_rdev)中提取设备major号码。

从原始设备号(通常是stat中的st_dev或st_rdev)中提取设备minor号码。

根据设备的major号码和minor号码组成原始设备号。

删除文件路径path。如果path指向的是目录路径,会抛出异常IsADirectoryError。如果要删除目录,使用rmdir。

递归的删除目录。与rmdir功能相似,不同的是,如果叶子目录被删除之后,removedirs会连续的删除每一层上级目录,直到抛出异常(异常会被忽略,因为异常通常意味着上层目录为非空目录)。

重命名文件或路径src为dst,如果dst已经存在,会抛出异常。

递归的重命名文件或目录。功能与rename类似,不同在于,renames首先创建new路径(即重命名之后的路径)的中间路径,然后创建完整new路径,最后,会使用removedirs删除掉old路径(实际上删除的是old路径与new路径不重合的部分)。

重命名文件或路径src为dst。如果dst是目录,抛出异常OSError。如果dst是文件且已经存在,且用户具有权限,dst会被替换掉。

删除path目录。如果path不存在,或者path非空,会抛出异常FileNotFoundError或OSError。如果要删除整个目录树,可以使用shutil.rmtree()。

返回path的绝对路径,效果等同于使用normpath:normpath(join(os.getcwd(), path))。

返回路径path的文件名,也就是对path调用os.path.split函数返回的元组的第二个元素。

paths为一个序列类型,其中每个元素表示一个路径,函数返回结果为每个元素所表示的路径的最长公共子路径。如果paths为空,或者paths同时包含绝对路径和相对路径,或者paths同时包含不同驱动类型的路径(比如Linux系统的路径和Windows系统的路径),则抛出异常ValueError。

list中的每个元素表示一个路径,函数返回每个路径的最长的共有路径前缀,因为计算方式为逐个字符进行比较,所以可能返回的结果并非有效的路径,如果要返回有效路径,可以使用commonpath。

返回path路径的目录部分,也就是对path调用os.path.split函数返回的元组的第一个元素。

如果path指向的路径已存在,则返回True,否则返回False。

在Unix和Windows系统中,返回path路径中的~被替换成用户的home目录之后的结果。

path路径中的 {name}被环境变量中对应名称的值替代。

返回最后一次访问path的时间,返回值的格式为一个float类型的数值,表示距离epoch基准时间1970-01-01 00:00:00的秒数。如果path表示的路径不存在或者没有权限,抛出异常OSError。

返回最后一次修改path的时间,返回值的格式为一个float类型的数值,表示距离epoch基准时间1970-01-01 00:00:00的秒数。如果path表示的路径不存在或者没有权限,抛出异常OSError。

返回path表示的文件或路径的大小,以byte字节为单位。如果path表示的路径不存在或者没有权限,抛出异常OSError。

如果path是绝对路径,返回True,否则返回False。

如果path表示的是已存在的文件路径,返回True。

如果path表示的是已存在的目录,返回True。

如果path表示的是链接,返回True。

判断path是否为挂载点。

连接一个或多个路径,path和多个*paths的连接会使用路径分隔符。

对path的字母大小写进行normalize。在Windows系统中,path中的所有字母都转成小写,并且把正斜杠转成反斜杠。在其他操作系统中,返回path本身。

对path进行normalize,删除多余的路径分隔符。

split the path into a pair (head, tail),其中tail是path中最后的部分,并且永远不会含有斜杠,head是除了tail之外的部分。如果path以斜杠结尾,tail为空;如果path中不包含斜杠,head为空;如果path为空,head和tail都是空。

os: This module provides a portable way of using operating system dependent functionality.

这个模块提供了一种方便的使用操作系统函数的方法。

os 常用方法

os.remove() 删除文件

os.rename() 重命名文件

os.walk() 生成目录树下的所有文件名

os.chdir() 改变目录

os.mkdir/makedirs 创建目录/多层目录

os.rmdir/removedirs 删除目录/多层目录

os.listdir() 列出指定目录的文件

os.getcwd() 取得当前工作目录

os.chmod() 改变目录权限

os.path.basename() 去掉目录路径,返回文件名

os.path.dirname() 去掉文件名,返回目录路径

os.path.join() 将分离的各部分组合成一个路径名

os.path.split() 返回( dirname(), basename())元组

os.path.splitext() 返回 (filename, extension) 元组

os.path.getatime\ctime\mtime 分别返回最近访问、创建、修改时间

os.path.getsize() 返回文件大小

os.path.exists() 是否存在

os.path.isabs() 是否为绝对路径

os.path.isdir() 是否为目录

os.path.isfile() 是否为文件

Python中的io模块是用来处理各种类型的I/O操作流,主要是文件处理。主要有三种类型的I/O类型:文本I/O(Text I/O),二进制I/O(Binary I/O)和原始I/O(Raw I/O)。它们都是通用类别,每一种都有不同的后备存储。属于这些类别中的任何一个的具体对象称为文件对象,其他常用的术语为流或者类文件对象。

python os库有很多和操作系统相关的功能。

其实不仅仅如此,os库中还有很多和文件,路径,执行系统命令相关的。

下面是os模块常用的方法.

1.os.sep                    可以取代操作系统特定的路径分割符

2.os.name                字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'

3.os.getcwd()            函数得到当前工作目录,即当前Python脚本工作的目录路径

4.os.getenv()            用来读取环境变量

5.os.putenv()            用来设置环境变量

6.os.listdir()              返回指定目录下的所有文件和目录名

7os.remove()            函数用来删除一个文件

8.os.system()            函数用来运行shell命令

9.os.linesep              字符串给出当前平台使用的行终止符。例如,Windows使用'/r/n',Linux使用'/n'而Mac使用'/r'。

10.os.path.split()      函数返回一个路径的目录名和文件名

11.os.path.isfile()      检验给出的路径是一个文件

12os.path.isdir()        检验给出的路径是一个目录

13.os.path.existe()    函数用来检验给出的路径是否真地存在

14.os.listdir(dirname) 列出dirname下的目录和文件

15.os.getcwd()          获得当前工作目录

16.os.curdir                返回当前目录('.')

17.os.chdir(dirname)  改变工作目录到dirname

os.path都是和路径指定的文件,目录,和路径字符串有关系的函数

os.path.isdir(name)          判断name是不是一个目录,name不是目录就返回false

os.path.isfile(name)          判断name是不是一个文件,不存在name也返回false

os.path.exists(name)        判断是否存在文件或目录name

os.path.getsize(name)      获得文件大小,如果name是目录返回0L

os.path.abspath(name)    获得绝对路径

os.path.normpath(path)    规范path字符串形式

os.path.split(name)          分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在)

os.path.splitext()              分离文件名与扩展名

os.path.join(path,name)    连接目录与文件名或目录

os.path.basename(path)  返回文件名

os.path.dirname(path)      返回文件路径