Python中常用的os操作汇总


Posted in Python onNovember 05, 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

作者: 韩志超

出处:https://www.cnblogs.com/superhin/p/13880748.html

更多关于python的相关知识,请关注python客栈

Python中常用的os操作汇总

以上就是Python中常用的os操作汇总的详细内容,更多关于python os操作的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
Python搭建FTP服务器的方法示例
Jan 19 Python
对python 多个分隔符split 的实例详解
Dec 20 Python
Python3爬虫全国地址信息
Jan 05 Python
python opencv实现图像边缘检测
Apr 29 Python
使用Python做定时任务及时了解互联网动态
May 15 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python文件和文件夹复制函数
Feb 07 Python
Python实现DBSCAN聚类算法并样例测试
Jun 22 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
python图像处理 PIL Image操作实例
Apr 09 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 #Python
Python实现异步IO的示例
Nov 05 #Python
Python requests HTTP验证登录实现流程
Nov 05 #Python
Python包资源下载路径报404解决方案
Nov 05 #Python
如何一键升级Python所有包
Nov 05 #Python
python实现磁盘日志清理的示例
Nov 05 #Python
Python常用外部指令执行代码实例
Nov 05 #Python
You might like
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP 魔术变量和魔术函数详解
2015/02/25 PHP
yii框架数据库关联查询操作示例
2019/10/14 PHP
用javascript获得地址栏参数的两种方法
2006/11/08 Javascript
htm调用JS代码
2007/03/15 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
2018/04/24 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
Python3读取文件常用方法实例分析
2015/05/22 Python
python3中int(整型)的使用教程
2017/03/23 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
用Python读取几十万行文本数据
2018/12/24 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
2019/08/22 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
MUGLER官方网站:蒂埃里·穆勒香水
2019/11/26 全球购物
华为c/c++笔试题
2016/01/25 面试题
教师节商场活动方案
2014/02/13 职场文书
大学生秋游活动方案
2014/02/17 职场文书
还款承诺书范本
2015/01/20 职场文书
2015大学生暑期实习报告
2015/07/13 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
python实现自动化群控的步骤
2021/04/11 Python
Java中使用Filter过滤器的方法
2021/06/28 Java/Android