- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
python标准库OS模块详解
python标准库OS模块简介
os就是“operatingsystem”的缩写,顾名思义,os模块提供的就是各种Python程序与操作系统进⾏交互的接⼝。通过使⽤os模
块,⼀⽅⾯可以⽅便地与操作系统进⾏交互,另⼀⽅⾯页可以极⼤增强代码的可移植性。如果该模块中相关功能出错,会抛出
OSError异常或其⼦类异常。
注意
如果是读写⽂件的话,建议使⽤内置函数open();
如果是路径相关的操作,建议使⽤os的⼦模块os.path;
如果要逐⾏读取多个⽂件,建议使⽤fileinput模块;
要创建临时⽂件或路径,建议使⽤tempfile模块;
要进⾏更⾼级的⽂件和路径操作则应当使⽤shutil模块。
当然,使⽤os模块可以写出操作系统⽆关的代码并不意味着os⽆法调⽤⼀些特定系统的扩展功能,但要切记⼀点:⼀旦这样
做就会极⼤损害代码的可移植性。
此外,导⼊os模块时还要⼩⼼⼀点,千万不要为了图调⽤省事⼉⽽将os模块解包导⼊,即不要使⽤fromosimport*来导⼊os
模块;否则os.open()将会覆盖内置函数open(),从⽽造成预料之外的错误。
2.常⽤功能
注意,os模块中⼤多数接受路径作为参数的函数也可以接受⽂件“描述符”作为参数。
⽂件描述符:filedescriptor,在Python⽂档中简记为fd,是⼀个与某个打开的⽂件对象绑定的整数,可以理解为
该⽂件在系统中的编号。
2.1
该属性宽泛地指明了当前Python运⾏所在的环境,实际上是导⼊的操作系统相关模块的名称。这个名称也决定了模块中哪些
功能是可⽤的,哪些是没有相应实现的。
⽬前有效名称为以下三个:posix,nt,java。
其中posix是PortableOperatingSystemInterfaceofUNIX(可移植操作系统接⼝)的缩写。Linux和MacOS均会返回该
值;nt全称应为“MicrosoftWindowsNT”,⼤体可以等同于Windows操作系统,因此Windows环境下会返回该值;java则是
Java虚拟机环境下的返回值。
因此在我的电脑(win10)上执⾏下述代码,返回值是nt:
importos
nt
⽽在WSL(WindowsSubsystemLinux,Windows下的Linux⼦系统)上的结果则是:
importos
posix
查看sys模块中的sys.platform属性可以得到关于运⾏平台更详细的信息,在此不再赘述
2.2os.environ
os.environ属性可以返回环境相关的信息,主要是各类环境变量。返回值是⼀个映射(类似字典类型),具体的值为第⼀次导
⼊os模块时的快照;其中的各个键值对,键是环境变量名,值则是环境变量对应的值。在第⼀次导⼊os模块之后,除⾮直接
修改os.environ的值,否则该属性的值不再发⽣变化。
⽐如其中键为“HOMEPATH”(Windows下,Linux下为“HOME”)的项,对应的值就是⽤户主⽬录的路径。Windows下,其
值为:
os.environ[HOMEPATH]
d:\\justdopython
Linux下,其值为:
os.environ[HOME]
/home/justdopython
2.3os.walk()
这个函数需要传⼊⼀个路径作为top参数,函数的作⽤是在以top为根节点的⽬录树中游⾛,对树中的每个⽬录⽣成⼀个由
(dirpath,dirnames,filenames)三项组成的三元组。
其中,dirpath是⼀个指⽰这个⽬录路径的字符串,dirnames是⼀个dirpath下⼦⽬录名(除去“.”和“..”)组成的列表,filenames
则是由dirpath下所有⾮⽬录的⽂件名组成的列表。要注意的是,这些名称并不包含所在路径本⾝,要获取dirpath下某个⽂件
或路径从top⽬录开始的完整路径,需要使⽤os.path.join(dirpath,name)。
注意最终返回的结果是⼀个迭代器,我们可以使⽤for语句逐个取得迭代器的每⼀项:
foriteminos.walk(.):
...print(item)
...
(.,[do],[go_go_go.txt])
(.\\do,[IAmDirectory,py
您可能关注的文档
- 2024年企业突发事故急救知识及处理方法考试真题【培优A卷】.docx
- 2024年临床执业医师资格考试通关秘籍题库含答案(培优A卷).docx
- 2024年幼儿园急救知识及处理方法考试 完整版精品加答案.docx
- 2024年临床执业医师资格考试大全精品(模拟题).docx
- 2024年企业突发事故急救知识及处理方法考试题库大全附参考答案AB卷.docx
- 2024年国家临床执业医师考试实践技能通关秘籍题库附参考答案(典型题).docx
- 2024年临床执业医师资格考试真题题库带答案(巩固).docx
- 2024年临床执业医师资格考试精选题库附答案【突破训练】.docx
- 2024年幼儿园急救知识及处理方法考试 完整版带答案(基础题).docx
- 2024年企业突发事故急救知识及处理方法考试真题题库精品(含答案).docx
最近下载
- 2024年度公司领导班子民主生活会对照检查材料3篇.docx VIP
- 领导班子2025年紧紧围绕带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查材料.docx VIP
- 2024年度民主生活会领导班子对照检查材料(四个带头)+带头增强党性、严守纪律、砥砺作风方面存在的主要问题.doc VIP
- 《2、3的加减法》课件.pptx VIP
- 附件1.9重氮化工艺安全控制设计指导方案(试行).doc
- 2023年江苏省苏州高新区招聘“两新”组织党建专职党务工作者6人考前自测高频考点模拟试题(共500题)含答案详解.docx VIP
- 最全心脏瓣膜病课件.ppt
- 2025腾讯视频综艺营销手册.docx
- 2024年人教高一主题班会课件:例1《开学第一课》(共47张PPT).ppt VIP
- 庞中华钢笔字帖(行楷)《最新》.doc
文档评论(0)