Python os库常用操作代码汇总


Posted in Python onNovember 03, 2020

Python自动的os库是和操作系统交互的库,常用的操作包括文件/目录操作,路径操作,环境变量操作和执行系统命令等。

文件/目录操作

  • 获取当前目录(pwd): os.getcwd()
  • 切换目录(cd): os.chdir('/usr/local/')
  • 列出目录所有文件(ls):os.listdir('/usr/local/')
  • 创建目录(mkdir):os.makedirs('/usr/local/tmp')
  • 删除目录(rmdir):os.removedirs('/usr/local/tmp') # 只能删除空目录,递归删除可以使用import shutil;shutil.rmtree('/usr/local/tmp')
  • 删除文件(rm):os.remove('/usr/local/a.txt')
  • 递归遍历目录及子目录:os.walk()

示例:遍历/usr/local目录及子下所有文件和目录,并组装出每个文件完整的路径名

import os
for root, dirs, files in os.walk("/usr/local", topdown=False):
  for name in files:
    print('文件:', os.path.join(root, name))
  for name in dirs:
    print('目录:', os.path.join(root, name))

路径操作

  • 当前Python脚本文件:__file__
  • 获取文件所在路径:os.path.basename(__file__) # 不含当前文件名
  • 获取文件绝对路径:os.path.abspath(__file__) # 包含当前文件名
  • 获取所在目录路径:os.path.dirname(__file__)
  • 分割路径和文件名:`os.path.split('/usr/local/a.txt') # 得到一个[路径,文件名]的列表
  • 分割文件名和扩展名:os.path.splitext('a.txt') # 得到['a', '.txt']
  • 判断路径是否存在:os.path.exists('/usr/local/a.txt')
  • 判断路径是否文件:os.path.isfile('/usr/local/a.txt')
  • 判断路径是否目录:os.path.isdir('/usr/local/a.txt')
  • 组装路径:os.path.join('/usr', 'local', 'a.txt')

示例:获取项目根路径和报告文件路径

假设项目结构如下

project/
data'
reports/
report.html
testcases/
config.py
run.py

在run.py中获取项目的路径和report.html的路径

# filename: run.py
import os

base_dir = os.path.dirname(__file__) # __file__是run.py文件,os.path.dirname获取到其所在的目录project即项目根路径
report_file = os.path.join(base_dir, 'reports', 'report.html') # 使用系统路径分隔符('\')连接项目根目录base_dir和'reports'及'report.html'得到报告路径
print(report_file)

环境变量操作

  • 获取环境变量:os.environ.get('PATH')或os.getenv('PATH')
  • 设置环境变量:os.environ['MYSQL_PWD']='123456'

执行系统命令

执行系统命令:os.system("jmeter -n -t /usr/local/demo.jmx") # 无法获取屏幕输出的信息,相要获取运行屏幕信息,可以使用subprocess

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Django中间件工作流程及写法实例代码
Feb 06 Python
django 发送手机验证码的示例代码
Apr 25 Python
python编程使用协程并发的优缺点
Sep 20 Python
Python读取指定日期邮件的实例
Feb 01 Python
Python3多线程基础知识点
Feb 19 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
Python greenlet和gevent使用代码示例解析
Apr 01 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
Python Tornado核心及相关原理详解
Jun 24 Python
Python中三维坐标空间绘制的实现
Sep 22 Python
Python循环之while无限迭代
Apr 30 Python
如何基于Python爬虫爬取美团酒店信息
Nov 03 #Python
python import 上级目录的导入
Nov 03 #Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 #Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 #Python
python中not、and和or的优先级与详细用法介绍
Nov 03 #Python
如何基于Python按行合并两个txt
Nov 03 #Python
Python txt文件如何转换成字典
Nov 03 #Python
You might like
B2K与车机的中波PK
2021/03/02 无线电
上传多个文件的PHP脚本
2006/11/26 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
使用composer命令加载vendor中的第三方类库 的方法
2019/07/09 PHP
jQuery+CSS实现菜单滑动伸展收缩(仿淘宝)
2013/03/22 Javascript
jquery Tab效果和动态加载的简单实例
2013/12/11 Javascript
javascript性能优化之DOM交互操作实例分析
2015/12/12 Javascript
JS实现浏览器打印、打印预览示例
2017/02/28 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
一个Js文件函数中调用另一个Js文件函数的方法演示
2017/08/14 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
vue mvvm数据响应实现
2020/11/11 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
老生常谈Python序列化和反序列化
2017/06/28 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Python爬虫开发与项目实战
2020/12/16 Python
CSS3中设置3D变形的transform-style属性详解
2016/05/23 HTML / CSS
浅析HTML5中header标签的用法
2016/06/24 HTML / CSS
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
求职者简历中的自我评价
2013/10/20 职场文书
电子邮箱格式怎么写
2014/01/12 职场文书
幼儿园优秀教师事迹
2014/02/13 职场文书
公司接待方案
2014/03/08 职场文书
奥林匹克的口号
2014/06/13 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python
vue router 动态路由清除方式
2022/05/25 Vue.js
html5+实现plus.io进行拍照和图片等获取
2022/06/01 HTML / CSS