Python系统管理


系统管理四个模块:os os.path glob fnmatch
os:包含大部分linux管理命令
os.path:操作系统目录和文件操作
glob:linux下的通配符
fnmatch:文件名匹配

os模块包含普遍的操作系统功能,如果希望程序能够与平台无关的话,这个模块很重要,允许一个程序在编写后不需要做任何改动,也不会发生任何问题,就可以在linux和windows下运行。一个例子就是使用os.sep可以取代操作系统特定的路径分隔符。
os.name 字符串指示你正在使用的平台,对于linux/unix,是posix
os.getcwd() 得到当前的工作目录,即当前python脚本工作的目录路径
os.listdir()返回指定目录下的所有文件和目录名
os.remove() 用来删除一个文件
os.linesep 字符串给出当前平台的换行符,windows:\r\n linux:\n mac: \r

os模块文件操作
os.unlink/remove 删除path路径所指向的文件
os.rmdir 删除path路径指向的文件夹(文件夹必须为空,否则会报错)
os.mkdir 创建一个文件夹
os.renmae 重命名文件或文件夹

os模块权限操作 chmod/access
access判断是否具有相应的权限,linux中读写执行,os中R_OK,W_OK,X_OK
In [16]: os.access('c1.txt',os.R_OK)
Out[16]: True
结尾有例子


os.path模块:拆分路径,构建路径,获取文件属性,判断文件类型
拆分路径:
os.path.split() 返回一个二元组,包含文件的路径和文件名
os.path.dirname() 返回文件路径
os.path.basename() 返回文件的文件名
os.path.splitext() 返回一个除去文件扩展名部分和扩展名的二元组

构建路径:expanduser/abspath/join
os.path.expanduser('~/zongjun')
os.path.abspath('a.txt')
os.path.join(os.path.expanduser('~mysql', 't', 'a.py'))

获取文件属性
os.path.getatime 获取文件的访问时间
os.path.getmtime 获取文件的修改时间
os.path.getctime 获取文件的创建时间
os.path.getsize 获取文件的大小

判断文件类型
os.path.exists 参数path指向的路径是否存在
os.path.isfile 参数path指向的路径存在,并且是一个文件
os.path.isdir 路径存在,并且是一个文件夹
os.path.islink 路径存在,并且是一个链接

fnmatch模块 这个库只有四个函数,最常用的是fnmatch函数,判断文件名是否符合特定的模式
[name for name in os.listdir('.') if fnmatch.fnmatch(name,'[a-c]*')]
[name for name in os.listdir('.') if fnmatch.fnmatch(name,'[a-c]?.txt')]

glob模块
glob的作用相当于os.listdir加上fnmatch
glob.glob('*.txt')
glob.glob('[a-c]?.jpg')

附录:权限操作的案例
from __future__ import print_function
import os
import sys

def main():
sys.argv.append(' ')
filename = sys.argv[1]
if not os.path.isfile(filename):
raise SystemExit(filename + ' does not exists')
elif not os.access(filename,os.R_OK):
os.chmod(filename,0777)
else:
with open(filename) as f:
print(f.read())

 

posted on 2017-10-14 11:50  izongjun  阅读(935)  评论(0编辑  收藏  举报