目录管理(os)

  • system:执行系统命令

    # 执行系统命令
    os.system('cls')
  • name:获取操作系统名称

    # 操作系统名称,nt代表Windows, posix代表类unix
    print(os.name)
  • environ

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

    print(env['path'])
    print(env.get('path'))
    print(env.get('HELLO'))
  • getcwd:# 获取当前工作目录

    print(os.getcwd())
  • mkdir:创建目录

    # 创建目录,只能是单层目录
    # os.mkdir('hello')

    # 这里会失败
    # os.mkdir('a/b/c')
  • makedirs:创建目录,会创建中间目录

    
    
    # 会创建中间目录
    # os.makedirs('a/b/c')
  • rmdir:删除目录,只能删除空目录

    
    
    # 删除目录,只能删除空目录
    # os.rmdir('hello')
    # 当目录中有其他文件或目录时删除失败
    # os.rmdir('a')
  • rename:修改文件名(可以是目录)

    # 修改名字,可以是目录 (old, new)
    # os.rename('a', 'c')
    # 也可以修改文件名
    # os.rename('test.py', '123.py')
  • stat:查看文件信息

    
    
    # 查看文件信息
    print(os.stat('123.py'))
  • listdir:列出直接子文件

    # 列出直接子文件
    print(os.listdir('c'))
  • 相对目录、绝对目录

    相对目录:就是有参考的目录
    . 表示当前目录,通常 ./ 可以省略
    .. 表示上一级目录 绝对目录:windows中以某个盘符开头,类unix系统中以'/'开头的目录

    目录分隔符:
    类unix:/
    windows:/ 或 \
    建议:统一使用 '/' 表示 说明:在文件操作时,使用相对目录和绝对目录都可以
  • path

    
    
    from os import path

    # 拼接目录
    print(path.join('abc/def', '123.py'))

    # 提取文件后缀(切割文件名与后缀)
    name, ext = path.splitext('789.py')
    print(name, ext)

    # 提取目录名(最后一个目录分隔符的前面内容)
    print(path.dirname('123/456/789.py'))

    # 提取文件名(包括后缀)
    print(path.basename('123/456/789.py'))

    # 切割文件名和目录
    print(path.split('123/456/789.py'))

    # 判断文件是否存在(可以是目录)
    print(path.exists('123.py'))

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

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

    # 获取普通文件大小
    print(path.getsize('01-os.py'))
    # 不可以获取目录大小,始终是0
    print(path.getsize('c'))

    练习:自己实现目录大小的统计,需要使用递归

文件管理

  • 打开文件(open)

    • 示例:

    
    
    fp = open('00-test.txt', 'r')
    • 参数:

    参数1:文件路径名
    参数2:打开方式
    参数3:编码格式,通常可以不指定,系统会自动识别处理
    • 打开方式:

    r:只读方式,文件不存在会报错
    w:只写方式,文件不存在创建文件,文件存在清空内容
    a:追加方式,文件不存在则创建,文件存在直接打开(不会清空内容),只能向最后追加内容
    r+:在r方式下添加写的功能
    w+:在w方式下添加读的功能
    a+:在a方式下添加读的功能

    在上面的模式上添加b,表示二进制方式打开:rb、wb、ab、rb+、wb+、ab+
    1.文件的读写数据全部是bytes类型,没有添加b的方式全部是str类型
    • 编码方式:

    ascii:美国信息交换标准代码
    ansi:扩展的ascii
    gb2312:中国的ansi
    gbk:扩展的gb2312

    unicode:是一套理论,实现方式不限
    utf-8:可变长度的unicode实现,对中文的支持比较友好
  • 关闭文件(close)

    # 关闭文件
    fp.close()
  • 文件读写

    
    
    # 读取指定长度内容
    # ret = fp.read(3)
    # 写入内容
    fp.write('hello')

    # 读取一行,包括换行符
    # print(fp.readline())

    # 读取所有行,返回一个列表
    print(fp.readlines())

    # 是否可读
    print(fp.readable())

    # 是否可写
    print(fp.writable())
  • 文件指针

    
    
    # 返回文件指针的操作位置
    print(fp.tell())

    # 设置偏移
    # 参数1:偏移量
    # 参数2:参考位置,0:开头,1:当前,2:末尾
    # 定位到末尾
    fp.seek(0, 2)

    带b的方式seek没有异常;不带b的时候,相对于当前位置无法偏移,相对于末尾只能偏移0

  • 文件删除

    import os
    os.remove('02-test.py')

    练习:(递归)删除一个目录

练习

  • 1.实现一个拷贝文件的功能,提醒:要考虑超大文件问题,如:依次读取1024字节,循环读取

  • 2.递归删除一个文件夹

  • 3.统计一个文件夹的大小

  • 4.拷贝一个文件夹

  • 5.移动一个文件夹

  • 6.目录整理

    • 一个目录中有各种文件,也有文件夹

    • 将所有的文件夹统一放到dir目录下

    • 将没有后缀的文件统一放到others目录下

    • 将有后缀的文件放到后缀名大写的文件夹下

    # 处理前
    test/
      dir1/
      dir2/
      1.py
      2.py
      3.txt
      4.pdf
      123
      456

    # 处理后
    test/
      DIR/
          dir1/
          dir2/
      PY/
          1.py
          2.py
      TXT/
          3.txt
      PDF/
          4.pdf
      OTHERS/
          123
          456

    友情提醒:中间使用的所有文件目录的判断都需要进行拼接。

python 目录管理与文件管理的更多相关文章

  1. Python标准库04 文件管理 (部分os包,shutil包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令 ...

  2. python 包管理工具

    python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...

  3. Linux命令工具基础02 文件及目录管理

    文件及目录管理 文件管理不外乎文件或目录的创建.删除.查询.移动,有mkdir/rm/mv 文件查询是重点,用find来进行查询:find的参数丰富,也非常强大: 查看文件内容是个大的话题,文本的处理 ...

  4. python包管理-distutils,setuptools,pip,virtualenv等介绍

    python包管理-distutils,setuptools,pip,virtualenv等介绍 对于每个编程语言来说打包和发布开发包往往非常重要,而作为一个编程者能够快速容易的获得并应用这些由第三方 ...

  5. Python包管理工具和多版本环境管理

    1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...

  6. linux学习之路--(四)文件,目录管理

    1.mkdir:创建空目录 -p: -v:verbose mkdir -pv /mnt/test/x/m  /mnt/test/y mkdir -pv /mnt/test/{x/m,y} 命令行展开: ...

  7. Python 模块管理1

    Python 模块管理   导入新的模块 创建一个 calculate.py 文件 print('ok') def add(x,y): return x + y def sub(x,y): retur ...

  8. 【Python系列】Python包管理器pip

    缘起 这段时间忙着给朋友搞事,忙了好长一段时间,木有写博客很长时间了.之间做了两个东西,一个是邮件自动发送脚本,一个是数据处理软件.其中,在做数据处理软件的时候使用到了非Python系统库,是两个第三 ...

  9. python 包管理工具Pipenv

    Kenneth Reitz的最新工具Pipenv可以用于简化Python项目中依赖项的管理. 它汇集了Pip,Pipfile和Virtualenv的功能,是一个强大的命令行工具. 入门 首先使用pip ...

随机推荐

  1. Linux下深度学习常用工具的安装

    .Matlab 2015 64bit 的安装 (一)安装包下载 百度网盘: [https://pan.baidu.com/s/1gf9IeCN], 密码: 4gj3 (二)Vmware 使用Windo ...

  2. 《视觉SLAM十四讲》第1讲

    目录 一 视觉SLAM 注:原创不易,转载请务必注明原作者和出处,感谢支持! 一 视觉SLAM 什么是视觉SLAM? SLAM是Simultaneous Localization and Mappin ...

  3. Orcal nvl函数

    NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身.但此函数有一定局限,所以就有了NVL2函数. 拓展:NVL2函数:Oracle/PLSQL中的一个函数,Oracl ...

  4. 本地oracle可以通过localhost连接,无法通过ip地址连接解决方法,oracle远程连接配置

    Oracle11g安装后只有本地可以连接,远程无法连接,而且本地只能配置成localhost配置成IP地址也无法连接. 这是因为安装oracle的时候没有配置远程的监听,默认的监听是localhost ...

  5. GitHub:Google

    ylbtech-GitHub:Google 1.返回顶部 · horenso 探しやすいコードで漢字直接入力    Perl  Apache-2.0 94710Updated on 19 Apr · ...

  6. Linux - 搭建Web项目(Django + nginx + uwsgi)

    工作中碰到需要使用Django + nginx + uwsgi 搭建项目环境 1. 搭建基本环境 需要有python环境,不多做说明 需要安装nginx,不多做说明 需要安装uwsgi: yum in ...

  7. 动态加载、移除css文件

    修改样式有通过修改class属性来更改,也可以通过动态引入外部的css文件来改变对应的样式展示. 这里就介绍动态引入.移除css文件 ///添加平板样式文件 function loadStyles() ...

  8. 阶段3 3.SpringMVC·_06.异常处理及拦截器_6 SpringMVC拦截器之拦截器入门代码

    创建拦截器 新建包 实现拦截器的接口 接口中没有强制实现里面的方法.jdk1.8的特性.接口中已经实现了方法 这就是相当于实现了这个接口.方法已经全帮你实现过了. 如果想去写新的实现方法.Ctrl+o ...

  9. Appium-实战之启动App 获取信息说明

    如下为启动 格来云游戏APP启动信息 代码如下: from appium import webdriver caps = {} caps["platformName"] = &qu ...

  10. A = min(1, max(0, A))

    Crop A into [0, 1]: