python编程时,经常和文件、目录打交道,这就离不开os模块,os模块包含普遍的操作系统功能,与具体的平台无关,列举一些常用的命令。

1.os.name:字符串指示你正在使用的平台。windows是“nt”,linux是“posix”。

#linux下
>>> os.name
'posix'
#window下
>>> os.name
'nt'

2.os.getcwd():当前所在的路径。

>>> os.getcwd()
'/tmp'

3.os.chdir("dirname"):切换到指定的路径。

>>> os.chdir('/etc/sysconfig')
>>> os.getcwd()
'/etc/sysconfig'

4.os.curdir:返回当前目录(‘.’),没发现有实际意义。

>>> os.curdir
'.'

5.os.pardir:返回当前目录的父目录的字符串名(“..”),也没有任何实际的意义。

>>> os.pardir
'..'

6.os.mkdir("dirname"):创建一个目录。

>>> os.mkdir('file1')

7.os.makedirs("dirname1/dirname2"):创建一个多层的目录。

>>> os.makedirs('dir1/file2')

8.os.rmdir("dirname"):删除一个目录,如果目录中有其它的目录或者文件将会报错,不能去删除文件。

>>> os.rmdir('dir2')

9.os.remove("filename"):删除一个文件。

>>> os.remove('dir1/test1')

10.os.removedirs():删除一个空目录。

>>> os.removedirs('dir1')

11.os.listdir('dirname'):列出指定的目录下的文件或者目录。

>>> os.listdir('/tmp')
['dir1', 'dir2']
>>> os.listdir('/tmp/dir1')
['file1', 'file2']

12.os.rename("oldname","newname"):修改文件名或目录名。

>>> os.rename('dir1','newdir1')   #修改目录名
>>> os.rename('newdir1/file1','newfile1') #修改文件名

13.os.stat('path/name'):查看文件或目录的信息。

>>> os.stat('newdir1')  #目录信息
os.stat_result(st_mode=16877, st_ino=34242941, st_dev=2051, st_nlink=2, st_uid=0, st_gid=0, st_size=19, st_atime=1510732290, st_mtime=1510732357, st_ctime=1510732357)
>>> os.stat('newdir1/file2') #文件信息
os.stat_result(st_mode=33188, st_ino=34242960, st_dev=2051, st_nlink=1, st_uid=0, st_gid=0, st_size=0, st_atime=1510729923, st_mtime=1510729923, st_ctime=1510729923)
stat文件信息的参数
st_mode 保护模式
st_ino 节点号
st_dev 设备
st_nlink inode的链接数
st_uid 所有者的uid,所有者是root
st_gid 所有者的gid
st_size 文件的大小
st_atime 最后的访问时间
st_mtime  
st_ctime 最后的修改时间

14.os.sep:输出操作系统特定的路径分割符。

#linux下
>>> os.sep
'/'
#windows下
>>> os.sep
'\\'

15.os.linesep:输出当前平台使用的行终止符。

#Linux下
>>> os.linesep
'\n'
#windows下
>>> os.linesep
'\r\n'

16.os.pathsep:输出用于分割文件路径的字符串。

#linux下
>>> os.pathsep
':'
#window下
>>> os.pathsep
';'

17.os.system('bash command'):运行命令,显示结果。直接显示

>>> os.system('ifconfig')
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.43.130 netmask 255.255.255.0 broadcast 192.168.43.255
ether 00:0c:29:f9:99:68 txqueuelen 1000 (Ethernet)
RX packets 15245 bytes 1192629 (1.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6882 bytes 781568 (763.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 28 bytes 2380 (2.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28 bytes 2380 (2.3 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 0

18.os.popen('bash command'):运行命令,获取执行的结果。返回一个可迭代对象

>>> os.popen('ifconfig')
<os._wrap_close object at 0x7fdbe4dcf1d0> #可迭代对象
>>> list(os.popen('ifconfig'))
['ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500\n', ' inet 192.168.43.130 netmask 255.255.255.0 broadcast 192.168.43.255\n', ' ether 00:0c:29:f9:99:68

19.os.environ:获取系统的环境变量

>>> os.environ
environ({'XDG_SESSION_ID': '', 'HOSTNAME': '7.2-2.cx.com', 'SELINUX_ROLE_REQUESTED': '', 'TERM': 'xterm', 'SHELL': '/bin/bash',

20.os.path.abspath(path):返回绝对路径

>>> os.path.abspath('dir2')
'/tmp/dir2'

21.os.path.exists(path):判断path是否存在,不存在返回False,存在返回True。

>>> os.path.exists('/tmp')
True
>>> os.path.exists('/tmp/test2')
False

22.os.path.isabs(path):判断path是否是绝对路径。

>>> os.path.isabs('dir2')
False
>>> os.path.isabs('/tmp/test2')
True

23.os.path.isfile(path):判断path是否是一个文件。

>>> os.path.isfile('/tmp/newdir1/file2')
True
>>> os.path.isfile('/tmp/newdir1')
False

24.os.path.isdir(path):判断path是否是一个目录。

>>> os.path.isdir('/tmp/newdir1')
True
>>> os.path.isdir('/tmp/newdir1/file2')
False

25.os.path.join(path1,path2....):可以将多个路径组合在一起。

>>> os.path.join('/tmp/newdir1','file2')
'/tmp/newdir1/file2'
>>> os.path.join('/tmp/newdir1','/tmp/file2')
'/tmp/file2' #路径中不能有重叠的地方
>>> os.path.join('/tmp/newdir1','file2/file3/file4')
'/tmp/newdir1/file2/file3/file4' #路径可能不存在

26.os.path.getatime(path):返回path文件或目录最后的访问时间。

>>> os.path.getatime('/etc/passwd')
1510725661.0741642 #可以转化一下
>>> time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(os.path.getatime('/etc/passwd')))
'2017-11-15 14:01:01'

27.os.path.getmtime(path):返回path文件或目录最后的修改时间

>>> os.path.getctime('/script/color.py')
1510228018.6768353 #转化一下
>>> time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(os.path.getctime('/script/color.py')))
'2017-11-09 19:46:58'

28.os.path.getsize(path):返回path的大小

>>> os.path.getsize('/etc/passwd')
1045

python常用模块——os模块的更多相关文章

  1. python常用模块: random模块, time模块, sys模块, os模块, 序列化模块

    一. random模块  import random # 任意小数 print(random.random()) # 0到1的任意小数 print(random.uniform(-10, 10)) # ...

  2. python中的os模块

    os模块 os模块的作用: os,语义为操作系统,所以肯定就是操作系统相关的功能了,可以处理文件和目录这些我们日常手动需要做的操作,就比如说:显示当前目录下所有文件/删除某个文件/获取文件大小…… 另 ...

  3. Python基础入门-os模块

    今天我们来介绍一下os模块中常用的一些方法,当然python中的os模块中提供的使用方法有很多,但是这里面小编会列举出来一些和实际工作中应用的相关的方法,而且会有一些实际的例子方便大家对os模块理解. ...

  4. Python进阶(九)----json模块, pickle模块, os模块,sys模块,hashlib模块

    Python进阶----json模块, pickle模块, os模块,sys模块,hashlib模块 一丶序列化模块 什么是序列化: ​ 将一种数据结构,转换成一个特殊的序列(特殊字符串,用于网络传输 ...

  5. Python常用内建模块

    Python常用内建模块 datetime 处理日期和时间的标准库. 注意到datetime是模块,datetime模块还包含一个datetime类,通过from datetime import da ...

  6. 善于利用python中的os模块

    作为一个程序猿,平时善于利用python中的os模块进行路径等操作,会省去很多麻烦,下面总结一下我平时经常用到的方法: import os os.getcwd() # 获取当前文件所在的目录 os.p ...

  7. 常用模块(collections模块,时间模块,random模块,os模块,sys模块,序列化模块,re模块,hashlib模块,configparser模块,logging模块)

    认识模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编写的 ...

  8. Python中使用os模块执行远程命令

    1. 使用os模块远程执行命令 服务端代码 1 import socket 2 import os 3 4 sh_server = socket.socket() #创建一个socket对象 5 sh ...

  9. Python内置OS模块用法详解

    大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示.刚入门的读者千万不要错过! 很多人学习python,不知 ...

  10. day13 函数模块之序列化 random 模块 os模块 sys模块 hashlib模块 collections模块

    json import json dic = {'k1':'v1','k2':'v2','k3':'v3'} str_dic = json.dumps(dic) #序列化:将一个字典转换成一个字符串 ...

随机推荐

  1. MapReduce-MulitipleOutputs实现自己定义输出到多个文件夹

    输入源数据例子: Source1-0001 Source2-0002 Source1-0003 Source2-0004 Source1-0005 Source2-0006 Source3-0007 ...

  2. dubbo_分布式Rpc服务

    dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务或Rpc服务 1.下载,编译,运行demo  1).安装zookeeper    下载:http://apache.claz.org/ ...

  3. Java基础12 类型转换与多态(转载)

    类型检查 Java的任意变量和引用经过类型声明(type declaration),才能使用.我们之前见过对象数据.类数据.方法参数.方法返回值以及方法内部的自动变量,它们都需要声明其类型.Java是 ...

  4. 如何查询当前手机的cpu架构,so库导入工程又出异常了?

    执行adb命令: adb shell cat /proc/cpuinfo 对应文件夹 AArch64 == arm64-v8a ARMv7 == armeabi-v7a ............等 其 ...

  5. [已解决]window下Can't connect to MySQL server on 'localhost' (10061)与无法启动MYSQL服务”1067 进程意外终止”

    查了一圈,发现都解决不了我的问题,查了 window 系统日志,提示缺少了某些文件,文件怎么丢的我也不知道,以下是解决办法. -- 我的 mysql 版本为 5.6.x 压缩包版本,我的 mysql ...

  6. Ubuntu安装特定版本安装包

    Ubuntu安装特定版本安装包可以用aptitude,aptitude是apt-get的高级版,使用起来更强大. aptitude install package=version 比如我要安装2.6. ...

  7. nginx配置后只有根目录首页index.php能访问,其他页面404

    只有首页面根目录可以访问,其他页面地址都是404 not found.网上找了半天url重定向,url重写都试了无效,要不就是重定向过多,下图为跳坑历程. location / { #if ($htt ...

  8. cocos2d-x学习日志(18) --程序是怎样開始执行与结束?

    问题的由来 怎么样使用 Cocos2d-x 高速开发游戏.方法非常easy,你能够看看其自带的例程,或者从网上搜索教程,执行起第一个HelloWorld,然后在 HelloWorld 里面写相关逻辑代 ...

  9. nginx 在浏览器端保持cookie 一致

    一般来说,我们在java中都通过如下代码进行用户登录后的服务端注册,并且在用户下次请求时无需再登陆一遍,这就是Servlet的Session.使用了这种Session策略,那么Web容器比如tomca ...

  10. UVALive 5873 (几何+思维)

    唉 被秀了... 还是太弱,说好的数形结合呢,列个式子出来后就被吓到了,然后就懵逼了. 题意: 有一条狗,从原点出发,沿n个向量走,每个向量只走一次,沿着一个向量(x,y)走时,既可以往(x,y)方向 ...