Python的os模块是一个跟操做系统结合比较密切的模块,里面提供了不少不少比较有用的方法。
python
os.getcwd() 获取当前工做目录,即该Python脚本运行时的目录ide
print(os.getcwd())
结果:/Users/ssspure/PycharmProjects/File/osmodule函数
2. os.chdir("dirname") 切换到指定的目录,返回值是Noneui
3. os.curdir 这并非一个函数,而是返回一个表明当前目录的常量spa
返回值是:"."操作系统
官方解释:The constant string used by the operating system to refer to the current directory. This is '.' for Windows and POSIX. Also available via os.path.递归
4. os.pardir 跟上面的os.curdir是同样的,返回值是:".."ci
官方解释:The constant string used by the operating system to refer to the parent directory. This is '..' for Windows and POSIX. Also available via os.path.rem
5. os.makedirs(dirname, mode=0o777, exist_ok=False) 建立目录,能够指定多个不存在的目录, Python递归建立这些目录字符串
os.makedirs("test/demo", 0o700)
例如上面的代码中,会在当前目录下先建立test目录,以后再test目录下建立demo目录。
mode参数指的是要设置建立目录的权限,须要注意的一点是,第一位的权限必须是7,不然在建立多个目录的时候会报错,以下代码所示。
os.makedirs("test/demo", 0o600, True)
上面的代码只能建立test目录,而且会出现这样的错误:PermissionError: [Errno 13] Permission denied: 'test/demo'
这是由于建立的test目录权限是rw-------,也就是当前用户并无进入test目录的权限,因此demo目录在建立的时候就会出错。
exist_ok:该参数若是是False时,若是已经想要建立的目录已经存在,就会报错,若是是True,当要建立的目录存在时不会报错。
6. os.removedirs("dir1/dir2/dir3") 递归删除目录
首先删除dir3,以后删除dir2,最后删除dir1。若是dir2目录下面除了dir1以外还有别的目录或者文件, 再删除dir3以后,并不会删除dir2。
7. os.mkdir("test", 0o777)
建立单个空目录
8. rmdir("test") 删除单个空目录,若是目录不为空的状况下会报错
9. os.listdir(dirname) 列出指定目录下的全部文件和文件夹,报错隐藏的目录,返回值是一个列表
print(os.listdir("."))
上面代码的执行结果是:['__init__.py', 'odmodule.py', 'test']
10. os.remove(file) 删除一个文件
11. os.rename(file1, file2) 将file1的文件名改成file2
12. os.stat(file) 获取file文件的相关信息,这些信息封装在一个元组中
print(os.stat("demo.txt"))
返回结果:os.stat_result(st_mode=33188, st_ino=4067145, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=8, st_atime=1484573900, st_mtime=1484573764, st_ctime=1484573764)
13. os.sep 返回当前操做系统下的路径分隔符
Linux的路径分隔符是"/",Windows的是"\\"
14. os.pathsep 返回当前操做系统的环境变量分隔符
Linux的路径分隔符是":",Windows的是";"
15. os.linesep 返回当前操做系统的行分隔符
Linux的路径分隔符是"\n",Windows的是"\r\n"
16. os.name 输出当前平台的字符串名称
Linux-->posix win-->nt
17. os.system(command) 执行相应平台的Shell命令
os.system("ls")
列出当前目录下的文件,至关于执行ls命令
18. os.environ 输出当前系统的环境变量
19. os.path.abspath(path) 返回指定路径的绝对路径
print(os.path.abspath("."))
上面返回的结果是:/Users/ssspure/PycharmProjects/File/osmodule
20. os.path.split(path) 将指定的path分割成目录和文件,即便不存在的路径也能分割成功,最后返回一个目录和文件组成的元组
print(os.path.split("/User/demo/test"))
21. os.path.dirname(path)和os.path.basename(path)
这两个分别返回目录名和文件名,其实也就是os.path.split函数的第一个和第二个结果
print(os.path.dirname("/Users/test/python")) print(os.path.basename("/Users/test/python"))
输出的结果分别是:
/Users/test
python
22. os.path.exists(path) 判断指定的路径是否存在,存在返回True,不存在返回False
print(os.path.exists("/Users/ssspure/专用播放器.exe"))
执行上面的代码返回True
print(os.path.exists("/Users/ssspure/专用播放器1.exe"))
上面的代码返回False
23. os.path.isabs(path) 判断路径是不是绝对路径,这个函数并不会判断路径是不是有效存在的路径。
Linux平台下凡是以"/"开头的路径都会被该函数判断为绝对路径,Windows下以磁盘开头的会被判断为绝对路径
24. os.path.isfile(filepath) 判断指定的文件是否为文件
print(os.path.isfile("/Users/ssspure/专用播放器.exe"))
上面代码的执行结果返回的是True
25. os.path.isdir(path) 返回指定的路径是不是一个目录
print(os.path.isdir("/Users/ssspure"))
上面代码的执行结果是True
26. os.path.join(path1,path2,path3...) 将多个路径拼接到一块儿
print(os.path.join("ssspure", "test", "demo"))
书面代码的输出结果是:ssspure/test/demo
27. os.path.getatime(path)和os.path.getmtime(path) 分别返回对应文件的上一次访问时间和修改时间
print(os.path.getatime("/Users/ssspure/专用播放器.exe")) print(os.path.getmtime("/Users/ssspure/专用播放器.exe"))
上面代码的执行结果是:
1484566427.0
1481293274.0
返回的是时间戳