文件系统

python的标准库中包括大量工具,可以处理文件系统中的文件,构造和解析文件名,也可以检查文件内容。

pyhton表文件名表示为简单的字符串,另外还提供了一些工具,用来由os.path中平台独立的标准组成部分构造文件名。用os中的listdir()

可以列出一个目录中的内容,或者使用glob由一个模式建立文件名列表。

  1.os.path ---平台独立的文件名管理

  1.1 解析路径

os.path中的第一组函数可以用来将表示文件名的字符串解析为文件名的各个组成部分。有一点很重要,需要认识的这些函数并不要求路径真

实存在;它们只处理字符串。

路径解析依赖于os中定义的一些变量:

os.sep   路径各部分之间的分隔符  "/"

os.extsep   文件名和文件“扩展名”之间的分隔符   "."

os.curdir    当前目录的部分    "."

os.pardir   目录树上一层的部分  ".."

split()函数将路径分解为两个单独的部分,并返回包含这些结果的tuple.

import os.path
for path in ['/one/two/three','/four/five/six','/','.']:
    print '%15s:%s' %(path,os.path.split(path))       #第二个元素是路径的最后一部分,第一个为其它的所有内容

返回:

/one/two/three:('/one/two', 'three')
 /four/five/six:('/four/five', 'six')
              /:('/', '')
              .:('', '.')

  1.2 建立路径

要将多个路径组成部分为一个值,可以使用join()

--------------------------------------------------------------------------------------------------------------

技巧类:

python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。

得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()

返回指定目录下的所有文件和目录名:os.listdir()

函数用来删除一个文件:os.remove()

删除多个目录:os.removedirs(r“c:\python”)

检验给出的路径是否是一个文件:os.path.isfile()

检验给出的路径是否是一个目录:os.path.isdir()

判断是否是绝对路径:os.path.isabs()

检验给出的路径是否真地存:os.path.exists()

返回一个路径的目录名和文件名:os.path.split()     eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt')

分离扩展名:os.path.splitext()

获取路径名:os.path.dirname()

获取文件名:os.path.basename()

运行shell命令: os.system(command)

读取和设置环境变量:os.getenv() 与os.putenv()

给出当前平台使用的行终止符:os.linesep    Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'

指示你正在使用的平台:os.name       对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'

重命名:os.rename(old, new)

创建多级目录:os.makedirs(r“c:\python\test”)

创建单个目录:os.mkdir(“test”)

获取文件属性:os.stat(file)

修改文件权限与时间戳:os.chmod(file)

终止当前进程:os.exit()

获取文件大小:os.path.getsize(filename)

os.walk  文件遍历

语法:os.walk(top, topdown = True, onerror = None, followlinks = False)

文件结构:

父目录、子目录、二级子目录....

示例代码:

---------------------------------------------------------------

三个参数:分别返回  父目录、所有文件夹(不含路径)、所有文件名字

分析:先从根目录进行遍历,读取根目录的文件夹和文件,以根目录第一个子目录为新的根目录,读取其文件夹和文件.....

  glob包

  glob包最常用的方法只有一个, glob.glob()。

  该方法的功能与Linux中的ls相似,列出所有符合该表达式的文件(与正则表达式类似),将所有文件名放在一个表中返回。所以glob.glob()是一个查询目录下文件的好方法。

  示例:

  >>>import glob

  >>>print glob.glob(r'c:\windows\*.txt')

['c:\\windows\\1.txt'],  ['c:\\windows\\2.txt']

python进阶3--文件系统的更多相关文章

  1. Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令.

    Python进阶----SOCKET套接字基础, 客户端与服务端通信, 执行远端命令. 一丶socket套接字 什么是socket套接字: ​ ​  ​ 专业理解: socket是应用层与TCP/IP ...

  2. Python进阶:函数式编程实例(附代码)

    Python进阶:函数式编程实例(附代码) 上篇文章"几个小例子告诉你, 一行Python代码能干哪些事 -- 知乎专栏"中用到了一些列表解析.生成器.map.filter.lam ...

  3. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  4. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  5. Python进阶 - 命名空间与作用域

    Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空 ...

  6. python进阶学习笔记(一)

    python进阶部分要学习的内容: 学习目标: 1.函数式编程 1.1,什么是函数式编程 函数式编程是一种抽象计算的编程模式 不同语言的抽象层次不同: 函数式编程的特点: python支持的函数式编程 ...

  7. 【python进阶】详解元类及其应用2

    前言 在上一篇文章[python进阶]详解元类及其应用1中,我们提到了关于元类的一些前置知识,介绍了类对象,动态创建类,使用type创建类,这一节我们将继续接着上文来讲~~~ 5.使⽤type创建带有 ...

  8. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  9. Python进阶 函数式编程和面向对象编程等

    函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...

  10. 【python进阶】深入理解系统进程2

    前言 在上一篇[python进阶]深入理解系统进程1中,我们讲述了多任务的一些概念,多进程的创建,fork等一些问题,这一节我们继续接着讲述系统进程的一些方法及注意点 multiprocessing ...

随机推荐

  1. 用一条sql查出总长和状态为2是长度

    查询同一张表里同一个字段值的和以及状态是2(或1)时,该字段值的和

  2. DevExpress中GridControl的属性设置

    1.隐藏最上面的GroupPanel gridView1.OptionsView.ShowGroupPanel=false; 2.得到当前选定记录某字段的值 sValue=Table.Rows[gri ...

  3. Windows使用过程中的一些常见问题的解决方案

    Win8安装程序出现2502.2503错误解决方法 参见百度经验帖子:http://jingyan.baidu.com/article/a501d80cec07daec630f5e18.html

  4. Java Eclipse常规设置

    改变字体大小 eclipse英文版中如何去修改字体及方法?首先打开eclipse中,按下面的方法即可菜单项:window ->preferences -> general -> ap ...

  5. interview collect

    1. binary tree inorder traversal 不能用recursive写 (LC原题)2. 比如有个数组F={1,3, 4, 5, 2, 0}, A=3, 那么F[A]=5, F[ ...

  6. 纯css3实现tab选项卡

    <!doctype html> <html> <head> <title>Welcome</title> <meta http-equ ...

  7. php数组array,知道键名如何提取键值

    如果是知道键值,需要查找键名,直接使用array_search()即可.现在反过来,如何操作?   (1)array_walk_recursive()加自定义函数查找   $arr=array( 'n ...

  8. python 日期、时间戳转换

    获取当前日期: from datetime import datetime IN:datetime.now() OUT:datetime(2016,10,19,6,51,21,72341) 转化为字符 ...

  9. Ring3下干净的强行删除文件

    在某公司实习完,再次回到寝室.还是在学校好. 实习期间的给我的任务就是为项目添加一个强行删除的模块. 背景是硬盘上存储空间不够时,需要删掉老的文件,如果这时后,老的文件被打开了,没有关掉,就无法删除. ...

  10. 整理Linux查看系统日志的一些经常使用命令

    整理Linux查看系统日志的一些经常使用命令 last -a 把从何处登入系统的主机名称或ip地址,显示在最后一行. -d 指定记录文件.指定记录文件.将IP地址转换成主机名称. -f <记录文 ...