os

os.path 操纵文件路径,os 操纵文件,os.environ 环境变量

os.getcwd()    # 类似Linux pwd, '/home/ubuntu/code/backend/projects/gbm'

print(__file__)      # 当前执行脚本的路径,包含文件名bar.py
python path/bar.py   # 'path/bar.py'

# 文件路径名称相关操作,一般都是os.path开头
os.path.abspath(__file__)   # 绝对路径
os.path.basename(__file__)  # 文件名
os.path.dirname(__file__)   # 目录名
os.path.isabs(__file__)     # 是否绝对路径名

os.path.isfile('app.py')    # 判断是否是文件
os.path.isdir('custom')     # 判断是否是文件夹
os.path.exists('custom/hooks.py')    # 文件是否存在,可认为是isfile or isdir

os.path.split('custom/hooks.py')     # ('custom', 'hooks.py')
os.path.join('custom', 'hooks.py')   # 'custom/hooks.py'


# 操纵文件或目录, 一般以os开头
os.path.getsize('bar.py')
os.stat('bar.py')  # 文件属性  
os.listdir()       # 展示当前目录的文件和目录列表 [....]

os.remove('lazy_dog.txt')    # 删除文件
os.mkdir('dir1')             # 创建目录
os.makedirs('dir2/dir22')    # 创建记录目录
os.rename/replace            # 重命名 
shutil.copyfile('file1', 'file2')  # 拷贝文件
shutil.rmtree('dir2')        # 递归删除文件夹

os.environ            # 环境变量
os.environ['HOME']    # '/home/ubuntu'

# 遍历目录文件
for root, dirs, files in os.walk('custom'):
    root    # 所指的是当前正在遍历的这个文件夹的本身的地址
    dirs    # list, 该文件夹中所有的目录的名字(不包括子目录)
    files   # list, 该文件夹中所有的文件(不包括子目录)
    
os.path.expanduser(path)    # 把path中包含的"~"和"~user"转换成用户目录

Last updated