[快学Python3]目录与文件操作

概述

本文就os和path模块中常用的方法进行了说明和列举,更多的方法和技巧请参加官方文档

os模块常用方法

我们先看看os模块所提供的目录操作方法,直接上代码实例:

# -*- coding:utf-8 -*-

__author__ = '苦叶子'

# 导入os模块
import os

if __name__ == "__main__":    
    # 返回完整的路径目录
    print("获取当前工作目录")    
    print(os.getcwd())    

    # 返回的是: .
    print("获取当前目录")    
    print(os.curdir)    
    
    # 创建目录
    # 目标创建目录必须是不存在的,否则抛出异常
    os.mkdir("test_mk1")    

    # 重命名目录
    os.rename("test_mk1", "test_mk2")    

    # 删除指定目录
    # 要注意目标删除目录必须是无子目录、子文件
    # 目标删除目录必须存在,否则抛出异常
    # 使用该代码时,请将目标删除目录改为你要删除的目录
    # os.removedirs("test_mk1")

    # 将改变至C盘
    print("改变工作目录到dirname")
    os.chdir("c:")    
    print(os.getcwd())

path模块常用方法

我们通过下面的代码实例来看看如何使用path模块提供的方法来管理文件。

# -*- coding:utf-8 -*-

__author__ = '苦叶子'

import os

if __name__ == "__main__":

    # 先初始化当前文件全路径变量
    path = __file__
    print("当前文件全路径为: %s" % path)    
    
    # 是目录则返回True,否则返回False
    print("目录判断:%s" % os.path.isdir(path))
    
    # 判断是否为文件,是则返回True,否则返回False
    print("文件判断:%s" % os.path.isfile(path))    
    
    # 判断目录或文件是否存在
    print("目录/文件存在:%s" % os.path.exists(path))    
    
    # 获取文件大小,若目标为目录则返回0
    print("文件大小:%s" % os.path.getsize(path))    

    # 获取文件的绝对路径
    print("文件绝对路径:%s" % os.path.abspath(path))    
    
    # 将目标路径规范化, 即更规范的路径表达方式,跨平台标识
    print("规范化路径: %s" % os.path.normpath(path))    
    
    # 将文件名和目录分割
    # 若传入的是目录,则将最后的目录名做为文件名分割
    print("目录和文件名分割:", end="")    
    print(os.path.split(path))    

    # 分离文件名和扩展名
    print("文件名和扩展名分离:", end="")    
    print(os.path.splitext(path))    
    
    # 获取文件名
    print("文件名为:%s" % os.path.basename(path))    
    
    # 获取文件所在目录
    print("文件目录为:%s" % os.path.dirname(path))

目录遍历

我们一起看看os模块所提供的目录遍历方法:walk,直接上代码实例:

walk返回值说明: 返回值为一个迭代器对象,它的每个部分包含一个元组,即(目录X, [目录X下的目录列表], [目录X下的文件列表])

# -*- coding:utf-8 -*-

__author__ = '苦叶子'

import os

def walk_dir(target_dir):
    # root 当前根目录
    # dirs :root下的子目录
    # files:root下的子文件
    walk_result = os.walk(target_dir)    
    # print(type(walk_result))


    for root, dirs, files in walk_result:        
        # print(type(root), type(dirs), type(files))
        print("-" , root)        
        
        # 遍历当前子目录
        for name in dirs:
            print(" --", name)        
        
        # 遍历当前目录的子文件
        for name in files:
            print(" --", name)

if __name__ == "__main__":

    target_dir = os.curdir
    walk_dir(target_dir)

没了 ^_^

本文分享自微信公众号 - 开源优测(DeepTest)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏郭耀华‘s Blog

Python 中的 if __name__ == '__main__' 该如何理解

13230
来自专栏数值分析与有限元编程

Fortran知识 | 代码错误(insufficient virtual memory)

如图所示,提示为:insufficient virtual memory ? 程序试图访问一个受保护或者不存在的地址。多数为可分配数组、指针等动态内存引发的错误...

41970
来自专栏十月梦想

ES6基础语法之模块化

比如我希望在a.js中使用b.js的变量或者函数,那么ES6就中模块化就帮到咱们啦!

65040
来自专栏AILearning

多线程的基础学习

进程:是一个正在执行中的程序, 每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。 线程:是进程中的一个独立的控制单元, 线程在控制中进...

19670
来自专栏自动化测试实战

flask第二十篇——模板【3】

24960
来自专栏烂笔头

Python标准库笔记(5) — sched模块

目录[-] 事件调度 sched模块内容很简单,只定义了一个类。它用来最为一个通用的事件调度模块。 class sched.scheduler(timefu...

37450
来自专栏郭耀华‘s Blog

Python 中的 if __name__ == '__main__' 该如何理解

22540
来自专栏开源优测

接口测试 | 25 requests + pytest测试实例

概述 本文主要分享如何将pytest和requests结合一起使用,让大家有个初步的了解。 主要内容有: pytest简介 pytest + requests示...

76090
来自专栏xingoo, 一个梦想做发明家的程序员

python项目实现配置统一管理的方法

一个比较大的项目总是会涉及到很多的参数,最好的方法就是在一个地方统一管理这些参数。最近看了不少的python项目,总结了两种很有意思的配置管理方法。

33810
来自专栏Java开发者杂谈

Python(2):创建函数模块

说明: 在使用python的时候我们除了使用内置的函数之外,可能还需要使用一些别人写的函数。或者我们写的代码也希望可以给其他人使用。要实现这样的功能,我们就需要...

363120

扫码关注云+社区

领取腾讯云代金券