目录操作
import os
函数 | 描述 | 例子 |
---|---|---|
os.getcwd() | 获取当前工作目录,当前python脚本的工作不目录 | currentPath=os.getcwd() |
os.chdir(path) | 改变当前脚本工作目录 | os.chdir(’/user/text/dir’) |
os.mkdir(path,[mode]) | 生成单级目录,参数mode表示生成目录权限 | os.mkdir(’/user/text/dir/’) |
os.makedirs(path,[mode]) | 生成多级递归目录,父目录如果不存在,递归生成 | os.makedirs(’/user/text/dir/test1/test2’) |
os.rmdir(path) | 删除单级空目录,若目录不为空则无法删除,会报错 | os.rmdir(’/user/text/text1’) |
os.removedirs(path) | 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推 | os.removedirs(’/user/text/’) |
os.listdir(path) | 列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式 返回 | os.listdir(’/user’) |
os.remove(filePath) | 删除一个指定的文件,参数filePath表示文件所在的路径 | os.remove(’/user/text/text1.txt’) |
os.rename(old,new) | 重命名文件/目录 | os.rename(’/user/text/a.txt’,’/user/text/b.txt’) |
os.stat(filePath) | 获取文件信息 | os.stat().st_size os.stat()[1] |
os.utime(path,[atime,mtime]) | 修改文件的时间属性,设置文件的access and modified time为给定的时间, 如果未指定atime和mtime参数,修改的时间将会是当前的时间 | os.utime(’/user/text/a.txt’,(1375448978,1369735977)) |
os.system() | 运行shell 命令 | os.system(‘ls’) |
os.access(path,mode) | 输出文件权限模式 | os.access(’/user/text/a.txt’,os.W_OK) |
os.chmod(path,mode) | 修改文件的权限 | os.chmod(’/user/text/a.txt’,777) |
os.walk(top,topdown=True, None,followlinks=False) | 遍历目录下所有文件及目录 |
os.walk(top,topdown=True,None,followlinks=False)
- top:表示需要遍历的目录数的路径
topdown:默认值是True,表示表示首先返回目录树下的文件,然后遍历目录树下的 子目录。值设为False时,则表示先遍历目录树下的子目录,返回子目录下的文件,最后 返回根目录下的文件 - onerror:默认值是“None”,表示忽略文件遍历时产生的错误。如果不为空,则提 供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历
- 该函数返回一个列表,列表中的每一个元素都是一个元组,该元组有3个元素,分别表 示每次遍历的路径名,目录列表和文件列表
- 默认情况下,os.walk 不会遍历软链接指向的子目录,若有需要请将followlinks设定为 true
for root,dirs,files in os.walk('/user/text/','topdown=false):
print('当前目录',root)
for name in files:
print('文件名:',os.path.join(root,name))#打印文件绝对路径
for name in dirs:
print('文件名:',name)#打印目录绝对路径
属性 | 描述 | 例子 |
---|---|---|
os.curdir | 返回当前目录 | os.curdir ‘.’ |
os.pardir | 返回当前目录的父目录 | os.pardir ’…’ |
os.name | 返回操作系统的名称 | os.name ’posix’ |
os.sep | 输出操作系统的特定的路径分割符 | os.sep() |
os.pathsep | 输出用于分割文件路径的字符串 | os.pathsep() |
os.linesep | 输出当前平台是用的行终止符,win 下为“\r\n”,Linux下为“\n”,Mac使用 ‘\n’。 | os.linesep |
os.environ | 获取系统环境变量 | os.environ |
import os.path
函数 | 描述 | 例子 |
---|---|---|
os.path.abspath(path) | 返回文件的绝对路径 | |
os.path.split(path) | 将path分割成目录和文件名 | os.path.split(’/user/text/a.txt’) (’/user/text’, ‘a.txt’) |
os.path.dirname(path) | 返回path的目录路径,其实就是os.path.split(path)的第一个元素 | os.path.dirname(’/user/text/a.txt’) (’/user/text’) |
os.path.basename(path) | 返回path最后的文件名。如果path以/或\结尾,就会返回空值。即 os.path.split(path)的第二个元素 | os.path.basename(’/user/text/a.txt’) (‘a.txt’) |
os.path.isabs(path) | 判断path是否是绝对路径,如果是返回True,否则返回False | os.path.isabs(’/user/text/a.txt’) True |
os.path.exists(path) | 判断文件是存在,如果存在返回True,否则返回false | os.path.exists(’/user/text/a.txt’) True |
os.path.isfile() | 判断path是否是文件,如果是返回True,否则返回 False | os.path.isfile(‘a.txt’) True |
os.path.isdir() | 判断path是否是目录,如果是目录返回True,否则返回 False | os.path.isdir(’/user/text’) True |
os.path.getsize(name) | 获得文件大小,如果name是目录返回结果是0L 或者4096L;如果name代表的目录或文件不存在,则报文件不存在 | |
os.path.join(a,*p) | 连接两个或更多的路径名,中间以“\”分隔 | os.path.join(’/User/test’,‘a.txt’) |
os.path.splitext(path) | 分离文件扩展名 | os.path.splittext(’/user/text/a.txt’) (’/user/text/a’, ‘.txt’) |
os.path.getatime(filename) | 返回文件的最后访问时间,返回的是时间戳 | os.path.getatime(’/user/text/a.txt’) 1551516880.5821967 |
os.path.getctime(path) | 返回文件或目录的创建时间 | os.path.getctime(’/user/text/a.txt’) 1551492699.7239318 |
os.path.getmtime(path) | 获取文件最后存取时间 | os.path.getmtime(’/user/text/a.txt’) 1551492699.7239318 |
import sys
判断文件和目录
import os.path
函数 | 描述 | 例子 |
---|---|---|
sys.exit() | 退出当前程序 | sys.exit(0) 正常退出 sys.exit(1) 非正常退出 |
sys.stdin.readline() | 标准输入 | line=sys.stdin.readline() |
sys.stdout.write() | 标准输出 | sys.stdout.write(‘测试’) |
sys.stderr.write() | 标准错误输出 | sys.stderr.write(‘错误’) |
sys.version | 系统版本 | sys.version >>‘3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 03:13:28) \n[Clang 6.0 (clang-600.0.57)]’ |
注:整理于光荣之路吴老的pdf