Python之路(第十四篇)os模块
Posted Nicholas--Altshuler
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python之路(第十四篇)os模块相关的知识,希望对你有一定的参考价值。
一、os模块
1、os.getcwd()
获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹)
import os print(os.getcwd())
2、os.chdir(path)
改变当前工作目录,os.chdir()参数为路径
import os print(os.getcwd()) print(os.chdir(r"d:\\python\\exercise\\test_package\\a")) print(os.getcwd())
输出结果
D:\\06python\\exercise\\test_package None d:\\06python\\exercise\\test_package\\a #可以看到工作的路径变了
3、os.curdir os.pardir
os.curdir 返回当前目录: (\'.\')os.pardir 获取当前目录的父目录字符串名:(\'..\')
import os print(os.curdir) print(os.pardir)
输出结果
. ..
4、os.makedirs("dirname1/dirname2")
可生成多层递归目录
import os os.makedirs(r"exercise\\a\\b\\c")
输出结果
5、os.removedirs(”dirname1“)
递归删除文件夹 必须都是空目录,若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
import os os.removedirs(r"exercise\\a\\b\\c")
输出结果
6、os.mkdir(\'dirname\')
生成单级目录;相当于shell中mkdir dirname
import os os.mkdir("a")
输出结果
7、os.rmdir(\'dirname\')
删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
import os os.rmdir("a") # os.rmdir("b")
输出结果
8、os.listdir(\'dirname\')
列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
import os print(os.listdir("a"))
输出结果
9、os.remove()
删除一个文件
import os os.remove("a/x.py")
输出结果
10、os.rename("oldname","newname")
重命名文件/目录
linux平台下用os.rename(),os.rename不能直接在Windows平台下用,windows平台下用os.replace(),
import os os.rename("test.py","new_test.py")
输出结果
11、os.stat(\'path/filename\')
获取文件/目录信息
import os print(os.stat("test.py"))
输出结果
-
st_mode: inode 保护模式
-
st_ino: inode 节点号。
-
st_dev: inode 驻留的设备。
-
st_nlink: inode 的链接数。
-
st_uid: 所有者的用户ID。
-
st_gid: 所有者的组ID。
-
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
-
st_atime: 上次访问的时间。
-
st_mtime: 最后一次修改的时间。
-
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间。
12、os.sep
输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
import os print(os.sep)
输出结果
13、os.linesep
输出当前平台使用的行终止符,win下为"\\r\\n",Linux下为"\\n"
14、os.pathsep
输出用于分割文件路径的字符串 win下为;,Linux下为:
15、os.name
输出字符串指示当前使用平台。win->\'nt\'; Linux->\'posix\'
16、os.system("bash command") os.popen("bash command“)
os.system("bash command") 运行shell命令,直接显示
os.popen("bash command”) 运行shell命令,获取执行结果
17、os.environ
获取系统环境变量
18、os.path.abspath(path)
返回path规范化的绝对路径,包含文件名
import os print(os.path.abspath(__file__))
输出结果
19、os.path.split(path)
当path是文件的绝对路径时,将path分割成目录和文件名二元组返回
当path是一个文件目录的绝对路径时(类似“D:\\06python\\exercise\\test_package”),os.path.split()将path分割成最后的一个文件夹为一部分,其他的前面为一部分
import os print(os.path.split(__file__))
输出结果
例子2
import os print(os.path.split(r"D:\\06python\\exercise\\test_package"))
输出结果
20、os.path.dirname(path)
返回path的目录。其实就是os.path.split(path)的第一个元素。
参数path为文件时os.path.dirname()是获取文件的完整绝对路径中的目录部分(去掉文件名)
参数path为目录时os.path.dirname()获取完整路径当中的目录部分,获取上一级目录的绝对路径
os.path.dirname(os.path.dirname(path))是获取的返回该目录的上一级目录,即获取指定目录(os.path.dirname(path)的结果)的上一级目录的绝对路径
import os print(os.path.abspath(__file__)) print(os.path.dirname(__file__)) print(os.path.dirname(os.path.dirname(__file__)))
输出结果
分析:这里的输出结果后两个是斜杠,而第一个os.path.abspath输出的是win平台中常见的反斜杠,原因是pycharm做的优化
小实验
从这个结果可以看出,直接使用python解释器的结果仍然是反斜杠
同样的文件在pycharm中执行,pycharm中输出的就是斜杠
21、os.path.basename(path)
当参数path为文件的绝对路径时返回path最后的文件名。如何path以/或\\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
当参数path是一个文件目录的绝对路径时(类似“D:\\06python\\exercise\\test_package”),返回的是最后一个文件夹的名字
22、os.path.exists(path)
判断文件或者目录存不存在,如果path存在,返回True;如果path不存在,返回False
23、os.path.isabs(path)
如果path是绝对路径,返回True
import os print(os.path.isabs(r"D:\\06python\\exercise\\test_package\\test.py")) print(os.path.isabs(r".\\test_package\\test.py")) print(os.path.isabs(__file__)) v =os.path.isabs(r"D:\\06python\\exercise\\test_package") print(v) print(type(v))
输出结果
分析:这里即使是不存在的绝对路径也会返回True
24、os.path.isfile(path)
如果path是一个存在的文件,返回True。否则返回False
import os print(os.path.isfile(r"D:\\06python\\exercise\\test_package\\test.py")) print(os.path.isfile(r"D:\\06python\\exercise\\test_package\\t.py")) v =os.path.isfile(r"D:\\06python\\exercise\\test_package") print(v) print(type(v))
输出结果
25、os.path.isdir(path)
如果path是一个存在的目录,则返回True。否则返回False
26、os.path.join(path1[, path2[, ...]])
将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
import os print(os.path.join(r"D:\\06python\\exercise",r"test_package\\test.py")) print(os.path.join(r"D:\\06python\\exercise",r"test_package\\t.py")) #不存在的路径也能合成 print(os.path.join(r"D:\\06python\\exercise",r"/test_package\\t.py")) """如果第二个参数存在斜杠或者反斜杠,之前的参数会被忽略即第一个绝对路径之前的参数将被忽略""" print(os.path.join(r"D:\\06python\\exercise","test_package"))
输出结果
27、os.path.getatime(path)os.path.getmtime(path)
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
import os print(os.path.getatime(__file__)) # 返回path所指向的文件或者目录的最后存取时间 print(os.path.getmtime(__file__)) # 返回path所指向的文件或者目录的最后修改时间 print(os.path.getatime(r"D:\\06python\\exercise\\test_package")) print(os.path.getmtime(r"D:\\06python\\exercise\\test_package"))
输出结果
28、os.path.getsize(path)
返回path(文件或者目录下的所有文件)的大小
import os print(os.path.getsize(__file__)) print(os.path.getsize(r"D:\\06python\\exercise\\test_package"))
输出结果
以上是关于Python之路(第十四篇)os模块的主要内容,如果未能解决你的问题,请参考以下文章