os模块是与操作系统交互的一个接口。
os的方法 | Linux命令 | 备注 |
os.getcwd() | pwd | 获取当前工作目录路径 |
os.chdir() | cd | 切换当前工作目录 |
os.makedirs('dirname1/dirname2') | mkdir -p dirname1/dirname2 | 生成多级目录 |
os.removedirs('dirname1') | rmdir | 删除多级目录 |
os.mkdir('dirname') | mkdir dirname | 生成单级目录 |
os.rmdir('dirname') | rmdir | 删除单级目录 |
os.listdir('dirname') | ls -al dirname | 列出指定目录下的所有文件和目录,包括隐藏文件 |
os.remove(‘filename’) | rm filename | 删除一个文件 |
os.rename('oldname', 'newname') | mv oldname newname | 重命名 |
os.stat(‘filename’) | stat filename | 获取文件/目录的信息 |
os.system('bash command') | bash 命令 | 执行某个命令 |
os.popen('bash command').read() | bash 命令 | 运行shell命令,获得执行结果 |
os.sep | 系统分隔符python代码跨平台这块使用 | |
os.linesep | 输出当前平台的行终止符, windows下为\t\n, Linux下为\n | |
os.pathsep | 输出当前平台分隔文件路径的字符 | |
os.name | 输出当前使用平台。win->'nt', linux->'posix' | |
os.environ | 获取系统环境变量 |
从这个列表可以看出,os这个还是可以做很多系统方面的自动化程序设计的。特使是os.system()
和os.popen()这两个命令,那可以执行Linux的命令或者脚本了。
例:
import os
# os.system('dir')
ret = os.popen('dir').read()
print(ret)
获得结果:
我们再看下stat获取到的信息:
stat 结构:
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。
我们再看下os.path这些相关的命令:
# os.path
# os.path.abspath(path) 返回path规范化的绝对路径os.path.split(path) 将path分割成目录和文件名二元组返回
# os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
# os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
# os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
# os.path.isabs(path) 如果path是绝对路径,返回True
# os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
# os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
# os.path.join(path1[, path2[, ...]]) 将多个路径拼接组合后返回,第一个绝对路径之前的参数将被忽略
# os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间
# os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
# os.path.getsize(path) 返回path的大小
一个文件夹的大小就是4096。