原文链接:

python之os模块 - 程序生(Codey) - 博客园
https://www.cnblogs.com/cxscode/p/8085326.html

一、Python OS模块介绍

OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作。

可以查看OS模块的帮助文档:

>>> import os #导入os模块
>>> help(os)   #查看os模块帮助文档,里面详细的模块相关函数和使用方法

二、OS模块重要函数和变量:

1 )、os.sep 更改操作系统中的路径分隔符。
2 )、os.getcwd()获取当前路径,这个在Python代码中比较常用。
3 )、os.listdir() 列出当前目录下的所有文件和文件夹。
4 )、os.remove() 方法可以删除指定的文件。
5 )、os.system() 方法用来运行shell命令。
6 )、os.chdir() 改变当前目录,到指定目录中。

三、OS模块函数作用详解

os.system函数可以运行shell命令,Linux系统中就是终端模拟器中的命令。
也有一些函数可以执行外部程序,包括execv,它会退出Python解释器,并且将控制权交给被执行的程序。

os.sep变量主要用于系统路径中的分隔符。
Windows系统通过是“\\”,Linux类系统如Ubuntu的分隔符是“/”,而苹果Mac OS系统中是“:”。

四、OS模块案例代码演示

总结:OS模块是Python标准库中一个典型的跨平台模块,支持Windows和Linux等系统操作无需修改任何代码也不会产生错误。

四、OS模块案例部分函数

1.当前路径及路径下的文件

os.getcwd():查看当前所在路径。  -----get current work dir

os.listdir(path):列举目录下的所有文件。返回的是列表类型。

>>> import os
>>> os.getcwd()
'D:\\pythontest\\ostest'
>>> os.listdir(os.getcwd())
['hello.py', 'test.txt']

2.绝对路径

os.path.abspath(path):返回path的绝对路径。

>>> os.path.abspath('.')
'D:\\pythontest\\ostest'
>>> os.path.abspath('..')
'D:\\pythontest'

3.查看路径的文件夹部分和文件名部分

os.path.split(path):将路径分解为(文件夹,文件名),返回的是元组类型。可以看出,若路径字符串最后一个字符是\,则只有文件夹部分有值;若路径字符串中均无\,则只有文件名部分有值。若路径字符串有\,且不在最后,则文件夹和文件名均有值。且返回的文件夹的结果不包含\.

os.path.join(path1,path2,...):将path进行组合,若其中有绝对路径,则之前的path将被删除。

>>> os.path.split('D:\\pythontest\\ostest\\Hello.py')
('D:\\pythontest\\ostest', 'Hello.py')
>>> os.path.split('.')
('', '.')
>>> os.path.split('D:\\pythontest\\ostest\\')
('D:\\pythontest\\ostest', '')
>>> os.path.split('D:\\pythontest\\ostest')
('D:\\pythontest', 'ostest')
>>> os.path.join('D:\\pythontest', 'ostest')
'D:\\pythontest\\ostest'
>>> os.path.join('D:\\pythontest\\ostest', 'hello.py')
'D:\\pythontest\\ostest\\hello.py'
>>> os.path.join('D:\\pythontest\\b', 'D:\\pythontest\\a')
'D:\\pythontest\\a'

os.path.dirname(path):返回path中的文件夹部分,结果不包含'\'

>>> os.path.dirname('D:\\pythontest\\ostest\\hello.py')
'D:\\pythontest\\ostest'
>>> os.path.dirname('.')
''
>>> os.path.dirname('D:\\pythontest\\ostest\\')
'D:\\pythontest\\ostest'
>>> os.path.dirname('D:\\pythontest\\ostest')
'D:\\pythontest'

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'

4.查看文件时间

os.path.getmtime(path):文件或文件夹的最后修改时间,从新纪元到访问时的秒数。

os.path.getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数。

os.path.getctime(path):文件或文件夹的创建时间,从新纪元到访问时的秒数。

>>> os.path.getmtime('D:\\pythontest\\ostest\\hello.py')
1481695651.857048
>>> os.path.getatime('D:\\pythontest\\ostest\\hello.py')
1481687717.8506615
>>> os.path.getctime('D:\\pythontest\\ostest\\hello.py')
1481687717.8506615

5.查看文件大小

os.path.getsize(path):文件或文件夹的大小,若是文件夹返回0。

>>> os.path.getsize('D:\\pythontest\\ostest\\hello.py')
58L
>>> os.path.getsize('D:\\pythontest\\ostest')
0L

6.查看文件是否存在

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

7.一些表现形式参数

os中定义了一组文件、路径在不同操作系统中的表现形式参数,如:

>>> os.sep
'\\'
>>> os.extsep
'.'
>>> os.pathsep
';'
>>> os.linesep
'\r\n'

8.实例说明

在自动化测试过程中,常常需要发送邮件,将最新的测试报告文档发送给相关人员查看,这是就需要查找最新文件的功能。

举例:查找文件夹下最新的文件。

代码如下:

import os
def new_file(test_dir):#列举test_dir目录下的所有文件(名),结果以列表形式返回。lists=os.listdir(test_dir)#sort按key的关键字进行升序排序,lambda的入参fn为lists列表的元素,获取文件的最后修改时间,所以最终以文件时间从小到大排序#最后对lists元素,按文件修改时间大小从小到大排序。lists.sort(key=lambda fn:os.path.getmtime(test_dir+'\\'+fn))#获取最新文件的绝对路径,列表中最后一个值,文件夹+文件名file_path=os.path.join(test_dir,lists[-1])return file_path#返回D:\pythontest\ostest下面最新的文件
print new_file('D:\\system files\\workspace\\selenium\\email126pro\\email126\\report')

运行结果:

最后再啰嗦一句,关于lambda的用法(python中单行的最小函数):

key=lambda fn:os.path.getmtime(test_dir+'\\'+fn)
#相当于
def key(fn):return os.path.getmtime(test_dir+'\\'+fn)

转载: Python os 模块的功能以及子函数介绍相关推荐

  1. python系统-Python OS模块常用功能 中文图文详解

    一.Python OS模块介绍 OS模块简单的来说它是一个Python的系统编程的操作模块,可以处理文件和目录这些我们日常手动需要做的操作. 可以查看OS模块的帮助文档: >>> i ...

  2. python编写代码实现文件的拷贝功能_python利用os模块编写文件复制功能——copy()函数用法...

    我就废话不多说了,大家还是直接看代码吧~ #文件复制 import os src_path=r'E:\Pycharm\python100题\代码' target_path=r'E:\Pycharm\p ...

  3. Python OS模块和文件处理

    Python OS模块和文件处理 文件处理 1. 打开和关闭文件 2. 读&写 3. 文件定位 OS模块 1. OS模块简介: 2. OS模块常用函数 3. OS模块常用方法实战 4. 例题练 ...

  4. python os模块下载_Python OS模块目录文件处理

    Python编程语言优势特点比较突出,在Python语言中,有一种标准模块叫OS模块,Python OS模块包含普遍的操作系统功能,如果你希望你的程序能够与平台无关的话,这个模块尤为重要,它允许一个程 ...

  5. Python os模块文件操作(二)

    Python os模块文件操作(二) os模块对文件夹和文件的操作很多.可以先看: https://blog.csdn.net/weixin_43790276/article/details/9867 ...

  6. 12.19 Python os模块详解

    除前面章节介绍的各种函数之外,os 模块还提供了大量操作文件和目录的函数,本节将介绍 os 模块下常用的函数. 如果读者需要查阅有关这些函数的说明,则可访问 https://docs.python.o ...

  7. Python学习笔记四(Python OS模块)

    Python os模块提供了一个统一的操作系统接口函数,通过python os模块可以实现对系统本身的命令,文件,目录进行操作,官方参考文档( http://docs.python.org/libra ...

  8. python os模块 常用命令

    os 模块用法示例 python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()--判断现在正在实用 ...

  9. Python os模块文件操作(一)

    Python os模块文件操作(一) 一.文件描述符 在使用代码对文件进行操作时,为了指定操作的文件,避免不了要使用文件描述符,所以我们先介绍什么是文件描述符. 操作系统为了高效管理已经被打开的文件, ...

最新文章

  1. 发展是硬道理 高可用从双机热备走向容灾复制集群
  2. 小白成长之路_LeetCode刷题记录
  3. 2015第27周一非结构化数据
  4. 2020年春季学期信号与系统课程作业参考答案-第十五次作业
  5. 基于计算机网络的可持续发展信息共享情况调查
  6. JSON和JS对象之间的互转
  7. java商品列表展示_前台开发-----开发商品的列表显示
  8. AndroidStudio_安卓原生开发_AsyncTask异步处理使用_AsyncTaskLoader---Android原生开发工作笔记139
  9. 【管理心得之二十一】管得少就是管得好
  10. 1.4 PuTTY和Xshell远程连接与密钥认证登录
  11. Java 重写(Override)与重载(Overload)区别
  12. 汪磊老师整理的前端进阶课程目录
  13. Java关于日志,及日志的error和warn的选择
  14. 给测试实习生,新人的小小建议
  15. Visual Studio Community2019 30天试用期过期,无法登录微软账户
  16. 最全HTTP状态码汇总1XX——5XX
  17. Python面向对象编程——类的学习
  18. eclipse官网32位下载地址
  19. MybatisPlus整合SpringBoot全教程,用起来不要太方便
  20. WebForm与MonoRail

热门文章

  1. 《微信公众平台应用开发实战(第2版)》一导读
  2. 填问卷赢280元SaaS峰会门票 与Salesforce、Zenefits现场交流!
  3. RGB与16进制颜色转换的原理
  4. MySQL时间慢了八个小时
  5. jq父级绑定事件的意义_jq——事件
  6. 1013 Battle Over Cities(并查集解法)
  7. 妙用vector:根据第一个不等的元素比较两个序列大小的利器
  8. bootstrap-less源码分析:行和列
  9. LR分析法从理解到运用
  10. https和http有什么区别?看下面介绍就知道了!