分享

python模块系列-OS模块

 印度阿三17 2019-04-03

Python的os模块是一个跟操作系统结合比较密切的模块,里面提供了很多很多比较有用的方法。

 

  1. os.getcwd()   获取当前工作目录,即该Python脚本运行时的目录

print(os.getcwd())

结果:/Users/ssspure/PycharmProjects/File/osmodule

 

   2. os.chdir("dirname")  切换到指定的目录,返回值是None

 

   3. os.curdir  这并不是一个函数,而是返回一个代表当前目录的常量

返回值是:"."

官方解释: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是一样的,返回值是:".."

官方解释: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.

 

   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

返回的是时间戳

来源:http://www./content-1-155651.html

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多