python中os模块详解
os模块提供了对目录或者文件的新建/删除/查看文件属性,还提供了对文件以及目录的路径操作。比如说:绝对路径,父目录……
os.sep可以取代操作系统特定的路径分隔符。windows下为 “\”,Linux下为"/"
os.linesep字符串给出当前平台使用的行终止符。例如,Windows使用'rn',Linux使用'n'而Mac使用'r'。
os.pathsep 输出用于分割文件路径的字符串,系统使用此字符来分割搜索路径(像PATH),例如POSIX上':',Windows上的';'
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.remove(file) 删除一个文件
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.rename("oldname","newname") 重命名文件/目录,如果newname存在则替换出现错误
os.replace(class="lazy" data-src,dest) 重命名文件/目录,如果dest表示的是文件,存在则覆盖原来的文件,不报错;若是目录,存在则会报错
os.chmod(path, mode, *, dir_fd=None, follow_symlinks=True)
Ex:os.chmod('C:\my_share_file\test.sh',755)
os.stat('path/filename') 获取文件/目录信息
os.utime(path,times) 修改时间属性 times是个元组,(atime,mtime),这两个时间数可以通过os.stat获取
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
1.top表示需要遍历的目录树的路径
2.topdown的默认值是”True”,表示首先返回目录树下的文件,然后在遍历目录树的子目录.Topdown的值为”False”时,
则表示先遍历目录树的子目录,返回子目录下的文件,最后返回根目录下的文件
3.onerror的默认值是”None”,表示忽略文件遍历时产生的错误.如果不为空,则提供一个自定义函数提示错误信息后继续遍历或抛出异常中止遍历
该函数返回一个元组,该元组有3个元素,这3个元素分别表示当前遍历的目录,当前遍历的目录列表,当前遍历的目录的文件列表
os.walk()举例:
>>> import os
>>> for root, dirs, files in os.walk("wd/chat", topdown=False):
... for name in files:
... print(os.path.join(root, name)) #打印文件绝对路径
... for name in dirs:
... print(os.path.join(root, name)) #打印目录绝对路径
os.name字符串指示你正在使用的平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。
os.getenv()获取一个环境变量,如果没有返回none
os.putenv(key, value)设置一个环境变量值
os.environ[]获取环境变量的值 两者等价:os.environ[‘HOME'] <->os.getenv(‘HOME')
os.system(command)函数用来运行shell命令。
os.popen("bash command") 运行shell命令,生成对象,可赋给变量,再用read读取
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341