美文网首页简书收藏--Pythonpython基础Python随手查
一张图搞定-Python文件常用的场景和用法

一张图搞定-Python文件常用的场景和用法

作者: 菜鸟学python | 来源:发表于2016-11-12 21:05 被阅读302次

    这是菜鸟学python的第29篇原创文章

    阅读本文大概需要3分钟

    我们在文件处理的时候,除了上一篇说的基本的读写和指针在文件中移动之外,还有4个非常重要也很常用的场景:

    1)文件的处理

    2)文件路径的处理

    3)创建并访问目录

    4)判断是否为文件或者目录

                                    下面这张图是总览

    这部分知识其实非常重要,我们在写代码的时候要经常打交道,内容多而杂.Python中对文件系统的访问大多是通过os模块实现的,我们需要熟练掌握,.我把这些常见的用法和技巧总结归纳了一下,快来看看吧:

    下面的所有操作都要import os

    1.文件的处理

    假设在当前的目录下有一个'abc.txt'

    1)重命名文件

    os.rename('abc.txt','a123.txt')

    >>'abc.txt'变成了'a123.txt'

    2)删除文件

    os.remove('a123.txt')

    但是在删除之前,最好先判断'a123.txt'是否存在

    改成:

    if os.path.exists('a123.txt'):

    os.remove('a123.txt')

    2.文件路径的处理

    假设有一个文件路径

    path='/users/Python/Data/info.txt'

    1)获得路径

    print os.path.dirname(path)

    >>/users/Python/Data

    2)分割文件名

    print os.path.basename(path)

    >>info.txt

    3)分割文件的后缀

    print os.path.split(path)

    >>('/users/Python/Data', 'info.txt')

    3.创建并访问目录

    比如创建一个test01,test02目录

    1)创建目录

    os.mkdir('test01')#在当前目录下创建一个test01目录

    os.mkdir('test02')#在当前目录下创建一个test02目录

    改进,最好在创建之间先判断目录是否存在,否则会报错

    if not os.path.exists('test01'):

    os.mkdir('test01')

    if not os.path.exists('test02'):

    os.mkdir('test02')

    2)列出当前目录下的所有文件和文件夹

    |---test01--------

    |---test02--------

    |---demo_file.py--

    print os.listdir('.')

    >>['demo_file.py', 'test01', 'test02']

    有同学说我不知道这个test01是文件夹还是文件啊,不急有高招,接着看

    print list(os.walk('.'))#walk()会生成当前目录下的所有文件和目录

    >>[('.', ['test01', 'test02'], ['demo_file.py']), ('.\\test01', [], []), ('.\\test02', [], [])]

    3)返回当前的目录

    print os.getcwd()

    >>C:\Users\xx\Python\Test

    4)删除目录

    os.rmdir('test02')

    >>就把test02文件夹删除了

    有同学问若test02里面还有其他文件和目录,怎么办,如何一键删除.可以用一个高级模块shutil来处理,详细的我后面会有文章介绍文件的高级处理技巧

    4.判断是否为文件或者目录

    在文件处理的时候,特别是递归处理目录下的多个文件或者嵌套子目录的时候,要先判断一下这个是文件还是目录.

    python有非常简单的方法,假设我们有一个这样的目录结构:

    |---test01--------

    |---test02--------

    |---demo_file.py--

    1)判断是否为文件

    print os.path.isfile('test01')

    >>False

    print os.path.isfile('demo_file.py')

    >>True

    2)判断是否为目录

    print os.path.isdir('test01')

    >>True

    3)判断是否为符号link

    在linux里面会有一些link的文件

    print os.path.islink('link_file')

    4)判断文件或者目录是否存在

    有的时候我们不在乎这个到底是文件还是路径,我们只关心它是否存在,有个简便的方法:

    print os.path.exists('demo_file.py')

    >>True

    print os.path.exists('test01')

    >>True

    原文链接:

    https://mp.weixin.qq.com/s?__biz=MzIxNjM4NDE2MA==&mid=2247483859&idx=1&sn=00dbe38071e05a71888c8e3987ef1cd2&chksm=9788961ca0ff1f0aad5ffa97f750f56b46423635fa975b28627a7c62eaef713de04108c342be&scene=0&pass_ticket=Gij8WPfbbn%2F7O6acTaacsST1bHZ9pxtyMyAYC4HGvfHDlHfgdEu1jJR4JDJJmmZu

    相关文章

      网友评论

        本文标题:一张图搞定-Python文件常用的场景和用法

        本文链接:https://www.haomeiwen.com/subject/dfiqpttx.html