当前位置:   article > 正文

python应用-os库操作目录

python应用-os库操作目录

python自带的os模块提供了许多与操作系统交互的函数,适配多种操作系统,比如windows,mac,linux等,比如常用路径操作、进程管理、环境参数等都可通过os模块实现。

以下是自带的os.py中的前面一部分代码。

  • 第一个红框中主要说明如下:

—— os.name为'posix'或'nt'

—— os.curdir是一个表示当前目录的字符串(总是'.')

—— os.pardir是一个表示父目录的字符串(总是'..')

—— os.sep是路径分隔符('/'或'\\')

—— os.extsep是扩展分隔符(总是'.')

—— os.altsep是备用路径名分隔符(None或'/')

—— os.pathsep是$PATH等中使用的组件分隔符

—— os.linesep是文本文件中的行分隔符('\r'或'\n'或'\r\n')

—— os.defpath为可执行文件的默认搜索路径

—— os.devnull为空设备的文件路径('/dev/null'等)

其中os.name意味着操作系统类型,'posix'指的是类Unix操作系统,如Linux和Mac OS,而'nt'则指的是Windows。

  • 第二个红框是当通过from os import *导入时只导入__all__中包括的功能。

目录操作

os.getcwd()获取当前程序文件所在目录

print(os.getcwd())

os.mkdir()创建目录

用于新建文件夹,当文件夹存在时会报错,而且不能创建多层目录

在mac桌面上创建目录1,执行成功

os.mkdir('/Users/htsc/Desktop/dir1')

但如果想创建多层目录,比如在dir1下接着创建dir2,然后在dir2下创建dir3,此时会报错。

os.mkdir('/Users/htsc/Desktop/dir1/dir2/dir3')

os.makedirs()创建多层目录

用于新建文件夹,当文件夹存在时会报错,能创建多层目录

os.makedirs('/Users/htsc/Desktop/dir1/dir2/dir3')

os.rmdir()删除空目录

以下执行会删除最后一层dir3目录,但是dir3目录如果不为空,则会报错。

os.rmdir('/Users/htsc/Desktop/dir1/dir2/dir3')

os.removedirs()递归删除多层空目录

以下执行会依次删除dir3/dir2/dir1目录,但是某个目录如果不为空,则会报错。

os.removedirs('/Users/htsc/Desktop/dir1/dir2/dir3')

如果想删除非空目录,可以使用shutil.rmtree()函数

  1. import shutil
  2. shutil.rmtree("/Users/htsc/Desktop/dir1/dir2/dir3'")

os.chdir()改变当前目录。

  1. print(os.getcwd())
  2. os.chdir("/Users/htsc")
  3. print(os.getcwd())
  4. 结果:当前目录被修改
  5. /Users/htsc/Desktop
  6. /Users/htsc

os.rename(src, dst):重命名一个目录或文件。

os.rename('/Users/htsc/Desktop/dir1/dir2','/Users/htsc/Desktop/dir1/dir4')

os.listdir(path):列出指定目录下的所有文件和子目录。

print(os.listdir(path='/Users/htsc/Desktop'))

os.stat(path):获取文件或目录的状态。

  1. print(os.stat('/Users/htsc/Desktop'))
  2. 打印结果:
  3. os.stat_result(st_mode=16832, st_ino=245263, st_dev=16777234,
  4. st_nlink=15, st_uid=501, st_gid=20, st_size=480,
  5. st_atime=1713104547,
  6. st_mtime=1713104547, st_ctime=1713104547)

os.walk(path):递归地查找文件夹树,yield每个文件夹路径,所有的子文件夹名和所有的文件名。(返回一个生成器)

  1. for path,sub_folder_names,file_names in os.walk('/Users/htsc/Desktop/dir1'):
  2. print(path)
  3. print(sub_folder_names)
  4. print(file_names)

文件夹如果比较复杂打印看上去会很乱,大家可以依次打印或者找一个小层级的目录试下。

共勉: 东汉·班固《汉书·枚乘传》:“泰山之管穿石,单极之绠断干。水非石之钻,索非木之锯,渐靡使之然也。”

-----指水滴不断地滴,可以滴穿石头;

-----比喻坚持不懈,集细微的力量也能成就难能的功劳。

----感谢读者的阅读和学习,谢谢大家。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/425370
推荐阅读
相关标签
  

闽ICP备14008679号