Python之OS模块函数

Stella981
• 阅读 703

Python中的os模块提供了操作系统相关功能的函数,可以更加方便的在python脚本中对linux的文件目录的处理和shell的应用。

os.system("bash")

运行shell命令,直接显示

#应用ls命令查看当前目录下的文件>>> import os
>>> print(os.system('ls'))
alien_invasion.py  anzhaung.py    mpl_squares.py    Python-3.6.3  Python-3.6.3.tgz    Python-3.6.3.tgz.1  root.py
>>>

os.environ

获取环境变量

>>> print(os.environ)
{'MAVEN_HOME': '/usr/local/maven', 'LESSOPEN': '||/usr/bin/lesspipe.sh %s', 'SSH_CLIENT': '1.202.148.250 55342 22', 'LOGNAME': 'root', 'USER': 'root', 'PATH': '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
..........
>>>

os.getcwd()

获取当前工作目录,即当前python脚本工作的目录路径

>>> print(os.getcwd())
/home/feiji
>>>

os.chdir()

修改当前脚本的工作目录,相当于cd

>>> os.chdir("/home")
>>> print(os.getcwd())
/home
>>>

os.curdir

返回当前目录 ‘.’   我理解的是上面用os.chdir修改了工作目录,这里返回的话应该是/home/feiji才对,但是确实/home

>>> os.curdir
'.'
>>> print(os.getcwd())
/home

os.makedirs('目录1/目录2')

生成多层递归目录相当于 mkdir -r

>>> os.makedirs('new1/new2')
>>> print(os.system('ls'))
1.sh  3.sh         5.sh  admin  b.sh         feiji    funcation.sh           jq.sh  user_00  user_02    user_04  user_06  user_08  user_10  user_12  user_14  user_16  user_18    user_20
2.sh  47.98.190.211  abc   a.tex  error.log  free.sh  jdk-8u131-linux-x64.rpm  new1   
>>>

os.mkdir('新目录')

生成单层新目录

>>> os.mkdir('new2')
>>> print(os.system('ls'))
1.sh  47.98.190.211  admin  error.log  funcation.sh        new1     user_01  user_04  user_07  user_10  user_13  user_16  user_19
2.sh  5.sh         a.tex  feiji      jdk-8u131-linux-x64.rpm    new2     

>>>

os.removedirs('')

删除多层目录,可以看到上面建立的/new1/new2没有了  注意:只有目录为空时才删除

>>> os.removedirs('/home/new1/new2')
>>> print(os.system('ls'))
1.sh  3.sh         5.sh  admin  b.sh         feiji    funcation.sh           jq.sh  user_00  user_02    user_04  user_06  user_08  user_10  user_12  user_14  user_16  user_18    user_20
2.sh  47.98.190.211  abc   a.tex  error.log  free.sh  jdk-8u131-linux-x64.rpm  new2   
>>>

os.rmdir('')

删除单层目录

>>> print(os.rmdir('new2'))
None

os.remove('')

删除一个文件

>>> print(os.remove('1.sh'))
None

os.listdir('')

列出指定目录下的文件和目录

>>> print(os.listdir('feiji'))
['alien_invasion.py', 'anzhaung.py', 'Python-3.6.3', 'root.py', 'Python-3.6.3.tgz.1', 'mpl_squares.py', 'Python-3.6.3.tgz']
>>>

os.rename('old','new')

重命名文件或目录

>>> os.rename('2.sh','22.sh')

os.stat('')

查看文件或目录属性信息

>>> os.stat('22.sh')
posix.stat_result(st_mode=33188, st_ino=401743, st_dev=64769L, st_nlink=1, st_uid=0, st_gid=0, st_size=335, st_atime=1564478716, st_mtime=1564478715, st_ctime=1569487383)
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Python3:sqlalchemy对mysql数据库操作,非sql语句
Python3:sqlalchemy对mysql数据库操作,非sql语句python3authorlizmdatetime2018020110:00:00coding:utf8'''
Stella981 Stella981
3年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
9个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这