python学习笔记(九)目录操作

目录操作

OS模块

基本使用

import os

# 查看操作系统类型
# nt:表示windows,posix:表示类unix
# print(os.name)

# 可以执行系统命令
# calc:可以弹出计算器
# os.system('calc')

# 获取环境变量
env = os.environ

# for e in env:
#     print(e, env[e])

# print(os.environ['PATH'])
# print(os.environ.get('xxx', '默认值'))
# 上面的简化形式
# print(os.getenv('XXX', '默认值'))

print(os.getenv('test'))

环境变量

windows:
设置:set 变量名=变量值
获取:set 变量名
目录表示

相对目录:有参考的目录
.表示当前目录,./通常可以省略
…表示上一级目录,上上一级…/…/
绝对目录
windos:凡是以盘符开头的目录
如:C:\Program Files\Python36\Lib
类unix:以/开头的目录
目录分隔符
windows:\ 或/都可以
类unix:只能这样/
建议:统一使用/

目录操作

示例:

import os

# 查看当前工作目录
# print(os.getcwd())

# 创建目录:不可以创建中间目录
# os.mkdir('test')
# os.mkdir('abc/def')
# 创建目录:可以创建中间目录
# os.makedirs('abc/def')

# 删除目录:只能删除空目录
# os.rmdir('test')
# 删除文件
# os.remove('01-text.txt')

# 修改名字:文件和目录都可以
# os.rename('test', 'hello')
# os.rename('00-test.txt', '01-text.txt')

# 查看目录内容
# print(os.listdir('.'))

# 查看文件状态:文件和目录都可以
stat = os.stat('.')
# 获取大小:对于文件没有问题,对于目录有问题
print(stat.st_size)

```python

path

from os import path

# 路径拼接:目录分隔符会自动处理
print(path.join('abc/def/', 'hello.py'))
# 结果:abc/def/hello.py

# 提取目录
print(path.dirname('abc/def/hello.py'))
# 结果  abc/def

# 提取文件名
print(path.basename('abc/def/hello.py'))

# 切割目录名与文件名
dir_name, file_name = path.split('abc/def/hello.py')
print(dir_name, file_name)

# 切割文件名与后缀
print(path.splitext('abc/def/hello.py'))

# 判断文件是否存在
print(path.exists('xxx'))

# 判断是否是普通文件
print(path.isfile('hello'))

# 判断是否是目录文件
print(path.isdir('hello'))

# 判断是否是绝对目录
print(path.isabs('hello'))

# 转换为绝对目录
print(path.abspath('hello'))

# 获取文件大小:普通文件可以,目录文件有问题
print(path.getsize('hello/123.py'))

深度遍历目录




示例:

import os

# 深度遍历目录
def shengdu(dir_name):
    if not os.path.isdir(dir_name):
        print(dir_name, '不是目录,无法遍历')
        return
    # 转换为绝对目录
    dir_name = os.path.abspath(dir_name)
    files = os.listdir(dir_name)
    for f in files:
        # 拼接完整目录
        file_name = os.path.join(dir_name, f)
        print(file_name)
        if os.path.isdir(file_name):
            shengdu(file_name)

shengdu('../../')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值