os模块 sys模块系列方法汇总

持续更新补充中:

# 引入os和sys模块
import os, sys

1. sys.exit(0):退出程序机制

在debug程序时,我们需要逐步验证code功能,类似于中断调试,运行到该行命令时程序会自动退出,依次排查上序code是否满足预期效果。

2. os.path.basename(path):返回path最后的文件名

import os

path = "/home/backup/file/example.txt"
print(os.path.basename(path))

# 输出结果为:example.txt

3. os.path.isdir(path):判断某一路径path是否为目录

4. os.listdir(path)返回指定文件夹包含的文件或文件夹的名字的列表,它不包括 . 和 .. 即使它在文件夹中。

import os

path = "/home/backup/file/example.txt"
# 判断path是否为目录
if os.path.isdir(path):
    dir_list = os.listdir(path)
# 输出所有文件和文件夹
for list_item in dir_list:
   print(list_item)

5. os.walk(path):用来遍历文件夹及其子文件夹下所有文件并得到路径

5.1 os.walk() 函数定义:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

5.2 os.walk() 参数含义:

  • top -- 所要遍历目录的地址。

  • topdown -- 可选,默认为 True,优先遍历 top 目录,否则优先遍历 top 的子目录。

  • onerror -- 可选,需要一个 callable 对象,当 walk 需要异常时会调用。

  • followlinks -- 可选,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link)实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

5.3 os.walk() 的返回值: 

os.walk 的返回值是一个生成器(generator),返回一个三元元组(root, dirs, files)

  • root 指的是当前正在遍历的这个文件夹本身的地址
  • dirs 是一个列表,该 list 的内容是该文件夹中所有的目录的名字(不包括子目录)
  • files 是一个列表,该 list 的内容是该文件夹中所有的文件(不包括子目录)

5.4 实例说明:

以如下目录结构为例展开函数说明:

os模块 sys模块系列方法汇总_第1张图片

import os

path = "/home/backup/example"
for root, dirs, files in os.walk(path):
    print(root, dirs, files)

输出结果为:

# topdown 参数为 True, walk 会遍历 top 文件夹与 top 文件夹中每一个子目录

/home/backup/example ['test_file'] ['test.py', 'build.py', 'run.py']
/home/backup/example/test_file [] ['sub_test.py', 'sub_config.py']

进一步地,我们通过借助 os.path.join() 函数,获得所有子文件的路径:

import os

path = "/home/backup/example"
for root, dirs, files in os.walk(path):
    for file_item in files:
        print(os.path.join(root, file_item))

输出结果为:

/home/backup/example/test.py
/home/backup/example/build.py
/home/backup/example/run.py
/home/backup/example/test_file/sub_test.py
/home/backup/example/test_file/sub_config.py

你可能感兴趣的:(linux,linux,python)