文章目录

  • 简介
  • 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模块大宝剑(全)相关推荐

  1. Python骚操作:Python控制Excel实现自动化办公!

    Python骚操作:Python控制Excel实现自动化办公! 1.安装 Python骚操作:Python控制Excel实现自动化办公! 2.操作一个简单的Excel文档 操作注释及代码: Pytho ...

  2. Python骚操作:Python控制Excel实现自动化办公

    点击上方"Python高校",关注 文末干货立马到手 1.安装 2.操作一个简单的Excel文档 操作注释及代码: 操作完成后,数据存储结果如下: 3. 操作简单Excel文档并添 ...

  3. Python之操作excel的几个模块简述

    Python的几个excel模块安装 xlrd模块安装 pip install xlrd xlwt模块安装 pip install xlwt xlutils模块安装 pip install xluti ...

  4. 【Python神奇操作】python实现驾考自动答题,直接收获满分答卷~

    嗨嗨,大家好呀~ 我是小圆 今天给你们分享一个好东西~~ 驾考自动答题 emmm可能你们还不清楚是咋回事,就是最近看到考驾照的朋友很多,但是他们在网页上做题慢吞吞的,所以就搞了个自动答题~ 用Pyth ...

  5. python简单操作题,Python常用操作运算符及练习题

    一,操作符 ·算数操作符 操作符 描述 示例 + 加法 -返回两操作数相加的结果 3+2返回5 - 减法-返回左操作数减去右操作数的结果 3-2返回1 * 乘法-返回两操作数相乘的结果 3*2返回6 ...

  6. Python XML操作处理

    Python XML操作处理 Python XML操作处理: 可扩展标记语言(XML)是一个很象HTML或SGML的标记语言.这是建议由万维网联盟作为一个开放的标准. 什么是XML ? 可扩展标记语言 ...

  7. Python文件操作与函数目录

    文件操作 python文件操作 函数 Python函数学习--初步认识 Python函数学习--作用域与嵌套函数 Python函数学习--匿名函数 python内置函数 Python函数学习--递归 ...

  8. word python 域 操作_Python进阶:关于 Word 基本操作

    1. 概述 Word 是一个十分常用的文字处理工具,通常我们都是手动来操作它,本节我们来看一下如何通过 Python 来操作. Python 提供了 python-docx 库,该库就是为 Word ...

  9. python链表操作_Python链表操作(实现)

    Python链表操作 在Python开发的面试中,我们经常会遇到关于链表操作的问题.链表作为一个非常经典的无序列表结构,也是一个开发工程师必须掌握的数据结构之一.在本文中,我将针对链表本身的数据结构特 ...

最新文章

  1. svn update命令小记
  2. c++多元线性回归_五种优化算法实现多元线性回归
  3. tf.argmax tf2版本
  4. springmvc controller动态设置content-type
  5. 编造机中鼠标无法应用标题问题解答
  6. Redis和MongoDB的区别
  7. 海康威视工业相机SDK的开发使用笔记
  8. ultracompare中文乱码解决方法
  9. sqlserver 人名_一个用来统计相同姓名人数的SQl语句_sqlserver
  10. 洗牌-牛客 第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n,k(1 ≤ n,k ≤ 100),接下来一行有2n个数a1,a2,...,a2n(1 ≤ ai ≤ 1000
  11. java实现读取excel用例,testNg自动化,读取excel的数据
  12. 【openfilier】配置iSCSI存储
  13. [学习笔记] Python【第031讲:永久存储:腌制一缸美味的泡菜】总结
  14. cad net 绘制带圆弧的多段线
  15. Maui Blazor windows程序无法通过双击 bin 文件夹中的 exe打开程序的解决办法
  16. 我回来了,“纵使日薄西山”
  17. 计算机毕业设计Python+uniapp+安卓移动LYQ电子商城APP(WEB+APP+LW)
  18. Navicat连接Linux-MySQL
  19. java计算机毕业设计ETC用户自驾游推荐系统MyBatis+系统+LW文档+源码+调试部署
  20. 企业管理理论综述与实践 — 管理、使命、愿景、价值观

热门文章

  1. AndroidStudio Gradle download
  2. Eigen教程1 - 基础
  3. cannot import name filter
  4. JScrollPane 双滚动条
  5. jtree 默认展开树的全部节点
  6. IATF信息保障技术框架
  7. linux cp命令 前面,盘点Linux命令之Linux cp命令使用大全
  8. 少年宫计算机室活动小结,微机室管理工作总结
  9. java去掉rn,React Native删除第三方开源组件的依赖包
  10. 王者荣耀服务器维护1月9号,王者荣耀1月9日维护到几点 王者荣耀1月9日几点能上游戏?...