16.1. os-复杂的操作系统接口

Source code: Lib/os.py

该模块提供了使用操作系统相关功能的便携式方法。 如果您只想读或写一个文件,请参阅open(),如果要操作路径,请参阅os.path模块,如果要读取命令行中所有文件中的所有行,请参阅fileinput模块。 要创建临时文件和目录,请参阅tempfile模块,对于高级文件和目录处理,请参阅shutil模块。

有关这些功能的可用性的注意事项:

1.Python的所有内置操作系统依赖模块的设计是这样的,只要相同的功能可用,它使用相同的接口; 例如,函数os.stat(path)以相同的格式返回关于路径的统计信息(这恰好是由POSIX接口发起的)。

2.特定操作系统特有的扩展也可通过os模块获得,但使用它们当然是对可移植性的威胁。

3.接受路径或文件名的所有功能都接受字节和字符串对象,如果返回路径或文件名,则会导致一个相同类型的对象。

4.“可用性:Unix”注意意味着此功能通常在Unix系统上找到。 它没有对其在特定操作系统上的存在提出任何声明。

5.如果没有单独注释,则在Mac OS X上支持所有声明“可用性:Unix”的功能,这些功能基于Unix内核。

注意

在无效或不可访问的文件名和路径或其他具有正确类型但不被操作系统接受的参数的情况下,此模块中的所有功能都会引发OSError。

exception os.error

内置OSError异常的别名

os.name

导入操作系统依赖模块的名称。 以下名称目前已注册:'posix','int','java'

也可以看看

sys.platform具有更精细的粒度。 os.uname()提供与系统相关的版本信息。

平台模块提供对系统身份的详细检查。

16.1.1. 文件名,命令行参数和环境变量

在Python中,使用字符串类型表示文件名,命令行参数和环境变量。 在某些系统上,将这些字符串解码为字节是必要的,然后再将它们传递到操作系统。 Python使用文件系统编码来执行此转换(请参见sys.getfilesystemencoding())。

在版本3.1中更改:在某些系统上,使用文件系统编码的转换可能会失败。 在这种情况下,Python使用代理代码编码错误处理程序,这意味着在解码时不可编码的字节由Unicode字符U + DCxx替代,并且这些字节在编码时再次转换为原始字节。

文件系统编码必须保证成功解码低于128的所有字节。如果文件系统编码无法提供此保证,API函数可能会引发UnicodeError。

16.1.2. 进程参数

这些功能和数据项提供信息并对当前进程和用户进行操作。

os.ctermid()

返回与进程的控制终端对应的文件名。

可用性:Unix。

os.environ

表示字符串环境的映射对象。 例如,environ ['HOME']是您的主目录的路径名(在某些平台上),相当于C中的getenv(“HOME”)。

作为处理site.py的一部分,通常在Python启动期间第一次导入os模块时的映射。 在这个时间之后做出的环境变化并没有体现在os.environ中,除了直接修改os.environ所做的更改外,

如果平台支持putenv()函数,则可以使用此映射来修改环境以及查询环境。 当映射被修改时,putenv()将被自动调用。

在Unix上,键和值使用sys.getfilesystemencoding()和'surrogateescape'错误处理程序。 如果您想使用其他编码,请使用environb。

注意

调用putenv()直接不改变os.environ,所以最好修改os.environ。

注意

在某些平台上,包括FreeBSD和Mac OS X,设置环境可能会导致内存泄漏。 请参阅putenv()的系统文档。

如果没有提供putenv(),则可以将此映射的修改副本传递给适当的进程创建函数,以使子进程使用修改的环境。

如果平台支持unsetenv()函数,则可以删除此映射中的项以取消设置环境变量。 当一个项目从os.environ中删除,当pop()或clear()方法之一被调用时,将自动调用unsetenv()。

python模块学习之os的更多相关文章

  1. Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  2. [转] Python 模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.(一语中的) 二.常用方法 1.os.name 输出字符串指示正在使用的平台 ...

  3. python模块学习:os模块

    一.os模块概述 Python os模块包含普遍的操作系统功能.例如文件的复制.创建.修改.删除文件及文件夹... 二.常用方法 1.os.listdir()   返回指定目录下的所有文件和目录名. ...

  4. 【转】Python模块学习 - fnmatch & glob

    [转]Python模块学习 - fnmatch & glob 介绍 fnmatch 和 glob 模块都是用来做字符串匹配文件名的标准库. fnmatch模块 大部分情况下使用字符串匹配查找特 ...

  5. Python模块学习filecmp文件比较

    Python模块学习filecmp文件比较 filecmp模块用于比较文件及文件夹的内容,它是一个轻量级的工具,使用非常简单.python标准库还提供了difflib模块用于比较文件的内容.关于dif ...

  6. 【目录】Python模块学习系列

    目录:Python模块学习笔记 1.Python模块学习 - Paramiko  - 主机管理 2.Python模块学习 - Fileinput - 读取文件 3.Python模块学习 - Confi ...

  7. Python模块02/序列化/os模块/sys模块/haslib加密/collections

    Python模块02/序列化/os模块/sys模块/haslib加密/collections 内容大纲 1.序列化 2.os模块 3.sys模块 4.haslib加密 5.collections 1. ...

  8. python基础学习笔记——os模块

    #OS模块 #os模块就是对操作系统进行操作,使用该模块必须先导入模块: import os #getcwd() 获取当前工作目录(当前工作目录默认都是当前文件所在的文件夹) result = os. ...

  9. Python模块学习:logging 日志记录

    原文出处: DarkBull    许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net ...

随机推荐

  1. [CF494D]Birthday

    题意:给一棵带边权的树,定义如下的一些东西 $S(x)$表示以$x$为根的子树中的节点组成的集合 $d(u,v)$表示$u$和$v$之间的距离 $f(u,v)\sum\limits_{x\in S(v ...

  2. 【分块】bzoj2957 楼房重建

    http://www.cnblogs.com/wmrv587/p/3843681.html ORZ 分块大爷.思路很神奇也很清晰. 把 块内最值 和 块内有序 两种良好的性质结合起来,非常棒地解决了这 ...

  3. 使用virtualenv为应用提供了隔离的Python运行环境

    在开发Python应用程序的时候,系统安装的Python3只有一个版本:3.4.所有第三方的包都会被pip安装到Python3的site-packages目录下. 如果我们要同时开发多个应用程序,那这 ...

  4. Java静态static工具类线程安全问题研究

    针对静态方法有以下一些前提: 静态方法和实例方法的区别是静态方法只能引用静态变量,静态方法通过类名来调用,实例方法通过对象实例来调用 每个线程都有自己的线程栈,栈与线程同时创建,每一个虚拟机线程都有自 ...

  5. 玩转JavaScript正则表达式

    Why Regular Expression 我们先来看看,我们干哈要学正则表达式这玩意儿: 复杂的字符串搜寻.替换工作,无法用简单的方式(类似借助标准库函数)达成. 能够帮助你进行各种字符串验证. ...

  6. 修改input type=file 标签默认样式的简单方法

    <html><head><title></title></head><body><form id="upload ...

  7. 【spring mvc】spring mvc POST方式接收单个字符串参数,不加注解,接收到的值为null,加上@RequestBody,接收到{"uid":"品牌分类大”},加上@RequestParam报错 ---- GET方式接收单个参数的方法

    spring mvc POST方式 接收单个参数,不加任何注解,参数名对应,接收到的值为null spring mvc POST方式 接收单个参数,加上@RequestBody,接收到参数格式:{&q ...

  8. 【spring data jpa】jpa中使用in查询或删除 在@Query中怎么写 ,报错:org.springframework.expression.spel.SpelEvaluationException: EL1007E: Property or field 'goodsConfigUid' cannot be found on null 怎么处理

    示例代码如下: @Modifying @Transactional @Query("delete from GoodsBindConfigMapping gbc " + " ...

  9. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:2.搭建环境-2.10.配置用户NTF服务

    2.10.配置用户NTF服务 2.10.1.配置节点RAC1 1) [root@linuxrac1 sysconfig]#sed -i 's/OPTIONS/#OPTIONS/g' /etc/sysc ...

  10. 常用vim命令合集

    移动命令: h:左移 l:右移 k:上移 j:下移 ^:移动到本行第一个非空白字符上 0:移动到本行第一个字符上 gg:移动到文件头 G = shift + g:移动到文件尾 %:从一个"{ ...