博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之路(第十四篇)os模块
阅读量:5232 次
发布时间:2019-06-14

本文共 4863 字,大约阅读时间需要 16 分钟。

 

一、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"))

  

输出结果

 

 

转载于:https://www.cnblogs.com/Nicholas0707/p/9011854.html

你可能感兴趣的文章
编程面试的10大算法概念汇总
查看>>
Vue
查看>>
python-三级菜单和购物车程序
查看>>
条件断点 符号断点
查看>>
VMware12 + Ubuntu16.04 虚拟磁盘扩容
查看>>
水平垂直居中
查看>>
CSS3教程:border-image属性
查看>>
SQL Server 2008连接字符串写法大全
查看>>
MySQL简介
查看>>
设计模式之桥接模式(Bridge)
查看>>
jquery的$(document).ready()和onload的加载顺序
查看>>
Python Web框架Django (五)
查看>>
.net学习之继承、里氏替换原则LSP、虚方法、多态、抽象类、Equals方法、接口、装箱拆箱、字符串------(转)...
查看>>
【codevs1033】 蚯蚓的游戏问题
查看>>
【程序执行原理】
查看>>
第二次项目冲刺(Beta阶段)5.24
查看>>
python的多行注释
查看>>
连接Oracle需要jar包和javadoc文档的下载
查看>>
UVA 10976 - Fractions Again?!
查看>>
Dreamweaver cc新版本css单行显示
查看>>