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

浏览: 1437

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


阅读本文大概需要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

好了常见的Python文件用法和场景就讲到这里啦,希望能给初学者一些启发,若有什么不懂的,也可以留言跟我探讨交流.

最后说一下,原创真的不易,希望大家能够给点支持,欢迎转发,留言,也是对我的一点鼓励和动力.

也欢迎更多喜欢Python的同学关注 菜鸟学python,一起来学python吧 长按下方的二维码即可关注.

推荐 0
本文由 菜鸟学Python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册