python【OS操作系统库】Python的os模块大宝剑(全)
文章目录
- 简介
- 1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统
- 2.操作系统的详细信息
- 3.系统的环境变量
- 4.判断是否是绝对路径
- 5.获取当前路径
- 6.生成绝对路径的三种方式
- 7.获取目录或文件名
- 8.返回指定目录下的所有文件名和目录名 ,返回的是一个列表
- 9.分离后缀名和文件名
- 10.将目录名和文件名分离
- 11.创建目录【 mkdir / mkdir -p】
- 12.可以删除多层递归的空目录,若目录中有文件则无法删除
- 13.创建文件 删除文件
- 14.文件重命名
- 15.判断文件或目录是否存在
- 16.判断是否是文件或者目录
- 17. 改变当前目录到指定目录中
- 18.文件信息
简介
os模块提供了多数操作系统的功能接口函数。当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件、目录打交道,这时就离不了os模块,本节内容将对os模块提供的函数进行详细的解读
1.返回操作系统类型 :posix 是linux操作系统,nt 是windows操作系统
print(os.name)
print('Linux' if os.name == 'posix' else 'Windows')posix
Linux
2.操作系统的详细信息
info = os.uname()
print(info)
print(info.sysname)
print(info.nodename)posix.uname_result(sysname='Linux', nodename='foundation1.ilt.example.com', release='3.10.0-514.el7.x86_64', version='#1 SMP Wed Oct 19 11:24:13 EDT 2016', machine='x86_64')
Linux
foundation1.ilt.example.com
3.系统的环境变量
print(os.environ)
print(os.environ.get('PATH')) #通过key值获取环境变量对应的value值environ({'PATH': '/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin', 'XAUTHORITY': '/run/gdm/auth-for-kiosk-VxJi8Q/database', 'IMSETTINGS_MODULE': 'none', 'HISTCONTROL': 'ignoredups', 'XMODIFIERS': '@im=ibus', 'GDMSESSION': 'gnome-classic', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-Pz5VvDs6Nd,guid=dda5a3ee1f3848808f16852b5d004efd', 'XDG_CURRENT_DESKTOP': 'GNOME-Classic:GNOME', 'MAIL': '/var/spool/mail/kiosk', 'SSH_AGENT_PID': '1616', 'LD_LIBRARY_PATH': '.:', 'SESSION_MANAGER': 'local/unix:@/tmp/.ICE-unix/1446,unix/unix:/tmp/.ICE-unix/1446', 'USERNAME': 'kiosk', 'LOGNAME': 'kiosk', 'PWD': '/home/kiosk/PycharmProjects/2019python', 'PYCHARM_HOSTED': '1', 'WINDOWID': '31457287', 'PYTHONPATH': '/home/kiosk/PycharmProjects/2019python', 'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'SHELL': '/bin/bash', 'QT_GRAPHICSSYSTEM_CHECKED': '1', 'GNOME_DESKTOP_SESSION_ID': 'this-is-deprecated', 'IMSETTINGS_INTEGRATE_DESKTOP': 'yes', 'XDG_SESSION_DESKTOP': 'gnome-classic', 'LS_COLORS': 'rs=0:di=38;5;27:ln=38;5;51:mh=44;38;5;15:pi=40;38;5;11:so=38;5;13:do=38;5;5:bd=48;5;232;38;5;11:cd=48;5;232;38;5;3:or=48;5;232;38;5;9:mi=05;48;5;232;38;5;15:su=48;5;196;38;5;15:sg=48;5;11;38;5;16:ca=48;5;196;38;5;226:tw=48;5;10;38;5;16:ow=48;5;10;38;5;21:st=48;5;21;38;5;15:ex=38;5;34:*.tar=38;5;9:*.tgz=38;5;9:*.arc=38;5;9:*.arj=38;5;9:*.taz=38;5;9:*.lha=38;5;9:*.lz4=38;5;9:*.lzh=38;5;9:*.lzma=38;5;9:*.tlz=38;5;9:*.txz=38;5;9:*.tzo=38;5;9:*.t7z=38;5;9:*.zip=38;5;9:*.z=38;5;9:*.Z=38;5;9:*.dz=38;5;9:*.gz=38;5;9:*.lrz=38;5;9:*.lz=38;5;9:*.lzo=38;5;9:*.xz=38;5;9:*.bz2=38;5;9:*.bz=38;5;9:*.tbz=38;5;9:*.tbz2=38;5;9:*.tz=38;5;9:*.deb=38;5;9:*.rpm=38;5;9:*.jar=38;5;9:*.war=38;5;9:*.ear=38;5;9:*.sar=38;5;9:*.rar=38;5;9:*.alz=38;5;9:*.ace=38;5;9:*.zoo=38;5;9:*.cpio=38;5;9:*.7z=38;5;9:*.rz=38;5;9:*.cab=38;5;9:*.jpg=38;5;13:*.jpeg=38;5;13:*.gif=38;5;13:*.bmp=38;5;13:*.pbm=38;5;13:*.pgm=38;5;13:*.ppm=38;5;13:*.tga=38;5;13:*.xbm=38;5;13:*.xpm=38;5;13:*.tif=38;5;13:*.tiff=38;5;13:*.png=38;5;13:*.svg=38;5;13:*.svgz=38;5;13:*.mng=38;5;13:*.pcx=38;5;13:*.mov=38;5;13:*.mpg=38;5;13:*.mpeg=38;5;13:*.m2v=38;5;13:*.mkv=38;5;13:*.webm=38;5;13:*.ogm=38;5;13:*.mp4=38;5;13:*.m4v=38;5;13:*.mp4v=38;5;13:*.vob=38;5;13:*.qt=38;5;13:*.nuv=38;5;13:*.wmv=38;5;13:*.asf=38;5;13:*.rm=38;5;13:*.rmvb=38;5;13:*.flc=38;5;13:*.avi=38;5;13:*.fli=38;5;13:*.flv=38;5;13:*.gl=38;5;13:*.dl=38;5;13:*.xcf=38;5;13:*.xwd=38;5;13:*.yuv=38;5;13:*.cgm=38;5;13:*.emf=38;5;13:*.axv=38;5;13:*.anx=38;5;13:*.ogv=38;5;13:*.ogx=38;5;13:*.aac=38;5;45:*.au=38;5;45:*.flac=38;5;45:*.mid=38;5;45:*.midi=38;5;45:*.mka=38;5;45:*.mp3=38;5;45:*.mpc=38;5;45:*.ogg=38;5;45:*.ra=38;5;45:*.wav=38;5;45:*.axa=38;5;45:*.oga=38;5;45:*.spx=38;5;45:*.xspf=38;5;45:', 'SHLVL': '3', 'QT_PLUGIN_PATH': '/usr/lib64/kde4/plugins:/usr/lib/kde4/plugins', 'QT_IM_MODULE': 'ibus', 'HISTSIZE': '1000', 'TERM': 'xterm-256color', 'XFILESEARCHPATH': '/usr/dt/app-defaults/%L/Dt', 'LANG': 'en_US.utf8', 'XDG_SESSION_ID': '1', 'DISPLAY': ':0', '_': '../jre/jre/bin/java', 'GDM_LANG': 'en_US.utf8', 'PYTHONIOENCODING': 'UTF-8', 'DESKTOP_SESSION': 'gnome-classic', 'GPG_AGENT_INFO': '/run/user/1000/keyring/gpg:0:1', 'USER': 'kiosk', 'XDG_MENU_PREFIX': 'gnome-', 'WINDOWPATH': '1', 'VTE_VERSION': '3804', 'XDG_SEAT': 'seat0', 'SSH_AUTH_SOCK': '/run/user/1000/keyring/ssh', 'PYTHONUNBUFFERED': '1', 'HOSTNAME': 'foundation1.ilt.example.com', 'NLSPATH': '/usr/dt/lib/nls/msg/%L/%N.cat', 'GNOME_SHELL_SESSION_MODE': 'classic', 'KDEDIRS': '/usr', 'XDG_RUNTIME_DIR': '/run/user/1000', 'XDG_VTNR': '1', 'HOME': '/home/kiosk'})
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/kiosk/.local/bin:/home/kiosk/bin
4.判断是否是绝对路径
print(os.path.isabs('/tmp/ffff'))
print(os.path.isabs('hello.jog'))True
False
5.获取当前路径
print(os.getcwd())
/home/kiosk/PycharmProjects/2019python
6.生成绝对路径的三种方式
print(os.path.abspath('hello.png'))
print(os.path.join(os.path.abspath('.'),'hello.jpg')) ## .表示当前路径
print(os.path.join('/home/kiosk','hello.jpg'))/home/kiosk/PycharmProjects/2019python/hello.png
/home/kiosk/PycharmProjects/2019python/hello.jpg
/home/kiosk/hello.jpg
7.获取目录或文件名
filename = '/1234/year/month/day/hello.jpg'
print(os.path.basename(filename))
print(os.path.dirname(filename))hello.jpg
/1234/year/month/day
8.返回指定目录下的所有文件名和目录名 ,返回的是一个列表
print(os.listdir('img'))
['file1']
9.分离后缀名和文件名
print(os.path.splitext('hello.jpg'))
10.将目录名和文件名分离
print(os.path.split('/tmp/hello/hello.jpg'))
11.创建目录【 mkdir / mkdir -p】
os.mkdir('img')
os.makedirs('img/file1/file2')
不能递归删除目录,一层一层删
os.rmdir('img')OSError: [Errno 39] Directory not empty: 'img'
12.可以删除多层递归的空目录,若目录中有文件则无法删除
os.removedirs('img/file1/file2')
13.创建文件 删除文件
os.mknod('00_ok.txt')
os.remove('00_ok.txt')
14.文件重命名
os.rename('data.txt','data1.txt')
15.判断文件或目录是否存在
print(os.path.exists('ips.txtyyyy'))
print(os.path.exists('/home/kiosk/PycharmProjects/2019python/ips.txt'))False
True
16.判断是否是文件或者目录
print(os.path.isfile('ips.txt'))
print(os.path.isdir('img'))
17. 改变当前目录到指定目录中
print(os.getcwd())
path='/tmp'
os.chdir(path)
print(os.getcwd())/home/kiosk/PycharmProjects/2019python
/tmp
18.文件信息
Access:文件最近一次被访问的时间;当编辑器打开文件时,使用cat,more,less,grep,sed读取文件内容将会刷新 【 Access的时间,使用ls -lu可以读取当前的Access时间】
Modify:文件内容最近一次被修改的时间;当修改文件内容时Modify的时间将会刷新
【使用ls -l命令显示的是最近一次Modify时间】
Change:文件属性最近一次被修改的时间,对一个文件或则目录执行mv,chmod,chgrp命令,将会刷新Change 的时间【使用ls -lc可以查看最近一次Change的时间】
----------------------练习------------------------
在当前目录新建目录img, 里面包含多个文件, 文件名各不相同(X4G5.png)
将当前img目录所有以.png结尾的后缀名改为.jpg
import random
import string
import osdef gen_code(len=4):# 随机生成4位验证码li = random.sample(string.ascii_letters+string.digits,len)return ''.join(li)
def create_file():# 随机生成100个验证码li = {gen_code() for i in range(100)}os.mkdir('img')for name in li:os.mknod('img/' + name + '.png')create_file()def modify_suffix(dirname,old_suffix,new_suffix):""":param dirname:操作的目录:param old_suffix: 之前的后缀名:param new_suffix: 新的后缀名:return:"""# 1.判断查找的目录是否存在,如果不存在,报错if os.path.exists(dirname):# 2.找出所有以old_suffix(.png)结尾的文件pngfile = [filename for filename in os.listdir(dirname)if filename.endswith(old_suffix)]# 3.将后缀名和文件名分开,留下文件名basefiles = [os.path.splitext(filename)[0]for filename in pngfile]# 4.重命名文件for filename in basefiles:oldname = os.path.join(dirname,filename+old_suffix)newname = os.path.join(dirname,filename+new_suffix)os.rename(oldname,newname)print('%s命名为%s成功' %(oldname,newname))else:print('%s不存在,不能操作...' %(dirname))modify_suffix('redhat','.jpg','.png')
python【OS操作系统库】Python的os模块大宝剑(全)相关推荐
- Python骚操作:Python控制Excel实现自动化办公!
Python骚操作:Python控制Excel实现自动化办公! 1.安装 Python骚操作:Python控制Excel实现自动化办公! 2.操作一个简单的Excel文档 操作注释及代码: Pytho ...
- Python骚操作:Python控制Excel实现自动化办公
点击上方"Python高校",关注 文末干货立马到手 1.安装 2.操作一个简单的Excel文档 操作注释及代码: 操作完成后,数据存储结果如下: 3. 操作简单Excel文档并添 ...
- Python之操作excel的几个模块简述
Python的几个excel模块安装 xlrd模块安装 pip install xlrd xlwt模块安装 pip install xlwt xlutils模块安装 pip install xluti ...
- 【Python神奇操作】python实现驾考自动答题,直接收获满分答卷~
嗨嗨,大家好呀~ 我是小圆 今天给你们分享一个好东西~~ 驾考自动答题 emmm可能你们还不清楚是咋回事,就是最近看到考驾照的朋友很多,但是他们在网页上做题慢吞吞的,所以就搞了个自动答题~ 用Pyth ...
- python简单操作题,Python常用操作运算符及练习题
一,操作符 ·算数操作符 操作符 描述 示例 + 加法 -返回两操作数相加的结果 3+2返回5 - 减法-返回左操作数减去右操作数的结果 3-2返回1 * 乘法-返回两操作数相乘的结果 3*2返回6 ...
- Python XML操作处理
Python XML操作处理 Python XML操作处理: 可扩展标记语言(XML)是一个很象HTML或SGML的标记语言.这是建议由万维网联盟作为一个开放的标准. 什么是XML ? 可扩展标记语言 ...
- Python文件操作与函数目录
文件操作 python文件操作 函数 Python函数学习--初步认识 Python函数学习--作用域与嵌套函数 Python函数学习--匿名函数 python内置函数 Python函数学习--递归 ...
- word python 域 操作_Python进阶:关于 Word 基本操作
1. 概述 Word 是一个十分常用的文字处理工具,通常我们都是手动来操作它,本节我们来看一下如何通过 Python 来操作. Python 提供了 python-docx 库,该库就是为 Word ...
- python链表操作_Python链表操作(实现)
Python链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对链表本身的数据结构特 ...
最新文章
- svn update命令小记
- c++多元线性回归_五种优化算法实现多元线性回归
- tf.argmax tf2版本
- springmvc controller动态设置content-type
- 编造机中鼠标无法应用标题问题解答
- Redis和MongoDB的区别
- 海康威视工业相机SDK的开发使用笔记
- ultracompare中文乱码解决方法
- sqlserver 人名_一个用来统计相同姓名人数的SQl语句_sqlserver
- 洗牌-牛客 第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000
- java实现读取excel用例,testNg自动化,读取excel的数据
- 【openfilier】配置iSCSI存储
- [学习笔记] Python【第031讲:永久存储:腌制一缸美味的泡菜】总结
- cad net 绘制带圆弧的多段线
- Maui Blazor windows程序无法通过双击 bin 文件夹中的 exe打开程序的解决办法
- 我回来了,“纵使日薄西山”
- 计算机毕业设计Python+uniapp+安卓移动LYQ电子商城APP(WEB+APP+LW)
- Navicat连接Linux-MySQL
- java计算机毕业设计ETC用户自驾游推荐系统MyBatis+系统+LW文档+源码+调试部署
- 企业管理理论综述与实践 — 管理、使命、愿景、价值观
热门文章
- AndroidStudio Gradle download
- Eigen教程1 - 基础
- cannot import name filter
- JScrollPane 双滚动条
- jtree 默认展开树的全部节点
- IATF信息保障技术框架
- linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全
- 少年宫计算机室活动小结,微机室管理工作总结
- java去掉rn,React Native删除第三方开源组件的依赖包
- 王者荣耀服务器维护1月9号,王者荣耀1月9日维护到几点 王者荣耀1月9日几点能上游戏?...