400-616-5551

您所在位置: 首页> 学习课程> Python培训 | os模块运用心得以及os和sys模块的区别

Python培训 | os模块运用心得以及os和sys模块的区别

发布百知教育 来源:学习课程 2019-10-22

最近在进行字段提取的任务,需要遍历各个文件夹及其包含的特定文件,然后就接触到了这个os包,下面就简单谈谈近期学习os包的一些心得。


os,语义就是操作系统,于是就相应地和各个操作系统功能有了相关性,通过os包中的各种命令,我们可以实现进行日常处理文件的各种操作。


os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,所以离不开os模块。python编程时,经常和文件、目录打交道,这时就离不开os模块。


先来谈谈os模块的常用功能



1. os.name #显示当前使用的平台
2. os.listdir(‘dirname’) #返回指定目录下的所有文件名和目录名
3. os.remove(‘filename’) #删除一个文件
4. os.path.abspath(path) #显示当前绝对路径
5. os.path.dirname(path) #返回该路径的父目录
6. os.path.basename(path) #返回该路径的最后一个目录或者文件,若以/或\结尾,则返回空值
7. os.path.isfile(path) #若path是一个文件,返回True
8. os.path.isdir(path) #若path是一个目录,返回True
9. os.stat() #获取文件或者目录信息
10. os.path.split(path) #将path分割成路径名和文件名.
11. os.path.join(path,name) #连接目录与文件名或目录,结果为path/name.
12. os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) #在目录树中游走输出目录中的文件名,向上或者向下。
13. os.getcwd() # 查看当前所在路径
>>> import os
>>> os.getcwd()
'D:\\pythontest\\ostest'
>>> os.listdir(os.getcwd())
['hello.py', 'test.txt']
14. os.path.adspath(‘path’) # 返回path的绝对路径
实例:>>> os.path.abspath('.')
  'D:\\pythontest\\ostest'
  >>> os.path.abspath('..')
  'D:\\pythontest'
15. os.path.basename(path):返回path中的文件名。
>>> os.path.basename('D:\\pythontest\\ostest\\hello.py')
'hello.py'
>>> os.path.basename('.')
'.'
>>> os.path.basename('D:\\pythontest\\ostest\\')
''
>>> os.path.basename('D:\\pythontest\\ostest')
'ostest'
16. os.path.exists(path):文件或文件夹是否存在,返回True 或 False。
>>> os.listdir(os.getcwd())
['hello.py', 'test.txt']
>>> os.path.exists('D:\\pythontest\\ostest\\hello.py')
True
>>> os.path.exists('D:\\pythontest\\ostest\\Hello.py')
True
>>> os.path.exists('D:\\pythontest\\ostest\\Hello1.py')
False


再来看看os和sys模块的区别吧:


os与sys模块的官方解释如下:


os: This module provides a portable way of using operating system dependent functionality.

这个模块提供了一种方便的使用操作系统函数的方法。


sys: This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the interpreter.

这个模块可供访问由解释器使用或维护的变量和与解释器进行交互的函数。



总结就是,os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。


说了这些,我就分享一下近期学习os模块学习到的如何获取文件夹下文件的完整路径的方法吧。


import os # 导入os包
                                             
root_file = 'C:\data'  # 设置根目录

paths = [] # 由于需要存放文件路径,创建一个空列表用以存放输出值
for root,dirs,files in os.walk(root_file): # 遍历文件夹,遍历元素为os.walk()方法默认的root,dirs,files
    for name in files:
        if name == 'SpiderResult.db3': # 由于需要搜索到指定文件,再加一个判断语句
             path = os.path.join(root, name) #连接路径和文件名
             paths.append(path) #输出文件路径


上面的语句思路就是通过遍历root_file地址下存放的文件夹及其内容,对所需的文件路径进行筛选并整合,从而输出所需文件路径。


还有一种更加基础的方法实现查找并输出所需文件路径的方法,下面我也介绍一下:


import os

root_file = r'C:\data'

path = []
for i in os.listdir(root_file): # 显示root_file下所有文件夹的路径
    a = os.path.join(root_file,i) # 将文件夹的路径与根目录路径进行拼接
    for j in os.listdir(a):
        if(j=='SpiderResult.db3'): #如果遍历出的文件是j,则a与j组合,并传给b
            b = os.path.join(a,j)
            path.append(b) # 将b的结果存入预设的空列表里

只需要进行几次简答的遍历循环,就可以轻松地将所需文件路径输出。在我们需要读取文件路径时,os包提供了一个简便的方法以供我们快速进行任务。



文字来源|周煜宁

编辑|张曦月


注释:本文来自微信公众号数据帮Club


python培训:http://www.baizhiedu.com/python2019



上一篇:python培训 | 自学指南:Python基本语法五元素

下一篇:应届生去公司找个Java程序员的职位需要什么技能?

相关推荐

www.baizhiedu.com

有位老师想和您聊一聊

关闭

立即申请