python常用模块之os模块

时间:2023-02-09 22:36:25

os模块的作用:

  • os,语义为操作系统,主要是对操作系统的调用.
  • os模块不受平台限制,想要获取文件当前所在路径,命令方式在windows下为dir, 在linux下为pwd,使用python中os模块的os.path.abspath(name)功能,不管是linux或者Windows都可以获取当前的绝对路径。

os模块

有关路径

# 获取当前的工作目录,类似linux中的pwd;
os.getcwd()

# 改变当前工作目录,类似linux的cd
os.chdir('..')

# 返回当前路径,结果为'.'
os.curdir

# 返回当前路径的上一级路径,结果为'..'
os.pardir

有关目录

# 在当前目录下创建目录test1,也可以指定绝对路径,比如:/mnt/test1;
os.mkdir('test1')
# 如果想要创建test2/test3目录时,上面的创建目录操作就会直接报错,
# 因此如何实现递归创建目录,调用下面的函数即可.
os.makedirs('test2/test3')



# 删除当前目录下的test1目录,也可以指定绝对路径,比如:/mnt/test1;
os.rmdir('test1')
# 删除递归创建的目录test2/test3,如果目录为空,则删除,并递归到上一级目录,如果还为空,依次删除.
os.removedirs('test2/test3')



# 列出当前目录的内容,类似linux的ls;
os.listdir('/mnt')

有关文件


# 删除hello文件,删除的文件也可以通过绝对路径指定;
os.remove('hello')

相关属性


# 文件或目录重命名, 下面是将hello文件重命名为hello1文件。
os.rename('hello', 'hello1')

# 文件或目录属性查看,
# 返回值为:posix.stat_result(st_mode=16893, st_ino=807628007, st_dev=2051L, st_nlink=2, st_uid=1000, st_gid=1000, st_size=6, st_atime=1501747596, st_mtime=1501747596, st_ctime=1501747596)
os.stat('hello')
# 获取hello文件的大小,其他属性信息依次类推;
os.stat('hello').st_size

有关平台

# 输出操作系统指定的路径分隔符,win下为'\\',linux下为'/';
os.sep

# 输出当前平台使用的行终止符, win下为'\t\n', linux下为'\n';
os.linesep

# 输出用于分割文件路径的字符串
os.pathsep


# 输出当前使用平台,win下为'nt', linux下为'posfix'
os.name

# 运行shell命令,直接返回执行结果
os.system('df -h')

# 获取当前环境变量
os.environ

os.path模块

有关路径

# 返回一个文件或目录的绝对路径;
os.path.abspath('hello')

# 分离某个绝对路径,返回结果为元组类型,(目录, 文件名), 即('/home/kisok','hello');
os.path.split('/home/kiosk/hello')

# 返回/home/kiosk/hello所在目录,即'/home/kiosk';
os.path.dirname('/home/kiosk/hello')


# 返回/home/kiosk/hello中的文件名,即'hello';如果路径以'/'或'\'结尾,返回值为空;
os.path.basename('/home/kiosk/hello')

# 查看某个文件或目录是否存在,若存在返回True,否则返回False;
os.path.exists('/mnt/hello')

# 查看某个路径是否为绝对路径,如果是绝对路径返回True,否则返回False;
os.path.isabs('/mnt/hello')

# 将多个路径组合后返回,组合结果为/a/hello.md
os.path.join('/a','hello.md')

有关文件类型

# 查看是否为文件类型,如果是返回True,否则返回False; 
os.path.isfile('/etc/passwd')

# 查看是否为目录,如果是返回True, 否则返回False;
os.path.isdir('/etc/passwd')

# 查看是否为链接文件,如果是返回True,否则返回False;
os.path.islink('/etc/passwd')

# 查看某个目录是否有设备挂载
os.path.ismount('/mnt')

获取文件的时间戳


# 获取文件的创建(create)时间戳
os.path.getatime('/etc/passwd')

# 获取文件改变(change)时间戳
os.path.getctime('/etc/passwd')

# 获取文件修改(modify)时间戳
os.path.getmtime('/etc/passwd')

# 获取文件大小
os.path.getsize('/etc/passwd')