打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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


我们在文件处理的时候,除了上一篇说的基本的读写和指针在文件中移动之外,还有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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python中的文件夹与文件路径
Python文件夹与文件的操作
Python之OS模块操作有哪些?这18个高频函数是重中之重,你会用?
Python目录操作总结
Python中os.walk()的使用方法
python——获取当前文件路径
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服