15. 通用操作系统服务
********************

本章中描述的各模块提供了在（几乎）所有的操作系统上可用的操作系统特性的
接口，例如文件和时钟。这些接口通常以 Unix 或 C 接口为参照对象设计，不
过在大多数其他系统上也可用。这里有一个概述：

* 15.1. "os" — 操作系统接口模块

  * 15.1.1. 进程参数

  * 15.1.2. 创建文件对象

  * 15.1.3. 文件描述符操作

    * 15.1.3.1. "open()" flag constants

  * 15.1.4. Files and Directories

  * 15.1.5. Process Management

  * 15.1.6. Miscellaneous System Information

  * 15.1.7. Miscellaneous Functions

* 15.2. "io" — 处理流的核心工具

  * 15.2.1. Module Interface

  * 15.2.2. I/O Base Classes

  * 15.2.3. Raw File I/O

  * 15.2.4. Buffered Streams

  * 15.2.5. Text I/O

  * 15.2.6. Advanced topics

    * 15.2.6.1. 性能

      * 15.2.6.1.1. Binary I/O

      * 15.2.6.1.2. Text I/O

    * 15.2.6.2. 多线程

    * 15.2.6.3. Reentrancy

* 15.3. "time" — 时间的访问和转换

* 15.4. "argparse" — 命令行选项、参数和子命令解析器

  * 15.4.1. 示例

    * 15.4.1.1. 创建一个解析器

    * 15.4.1.2. 添加参数

    * 15.4.1.3. 解析参数

  * 15.4.2. ArgumentParser 对象

    * 15.4.2.1. prog

    * 15.4.2.2. usage

    * 15.4.2.3. description

    * 15.4.2.4. epilog

    * 15.4.2.5. parents

    * 15.4.2.6. formatter_class

    * 15.4.2.7. prefix_chars

    * 15.4.2.8. fromfile_prefix_chars

    * 15.4.2.9. argument_default

    * 15.4.2.10. conflict_handler

    * 15.4.2.11. add_help

  * 15.4.3. add_argument() 方法

    * 15.4.3.1. name or flags

    * 15.4.3.2. action

    * 15.4.3.3. nargs

    * 15.4.3.4. const

    * 15.4.3.5. default

    * 15.4.3.6. type

    * 15.4.3.7. 选择

    * 15.4.3.8. required

    * 15.4.3.9. help

    * 15.4.3.10. metavar

    * 15.4.3.11. dest

    * 15.4.3.12. Action classes

  * 15.4.4. The parse_args() method

    * 15.4.4.1. Option value syntax

    * 15.4.4.2. Invalid arguments

    * 15.4.4.3. Arguments containing "-"

    * 15.4.4.4. Argument abbreviations (prefix matching)

    * 15.4.4.5. Beyond "sys.argv"

    * 15.4.4.6. The Namespace object

  * 15.4.5. Other utilities

    * 15.4.5.1. Sub-commands

    * 15.4.5.2. FileType objects

    * 15.4.5.3. Argument groups

    * 15.4.5.4. Mutual exclusion

    * 15.4.5.5. Parser defaults

    * 15.4.5.6. Printing help

    * 15.4.5.7. Partial parsing

    * 15.4.5.8. Customizing file parsing

    * 15.4.5.9. Exiting methods

  * 15.4.6. Upgrading optparse code

* 15.5. "optparse" — Parser for command line options

  * 15.5.1. Background

    * 15.5.1.1. Terminology

    * 15.5.1.2. What are options for?

    * 15.5.1.3. What are positional arguments for?

  * 15.5.2. 教程

    * 15.5.2.1. Understanding option actions

    * 15.5.2.2. The store action

    * 15.5.2.3. Handling boolean (flag) options

    * 15.5.2.4. Other actions

    * 15.5.2.5. Default values

    * 15.5.2.6. Generating help

      * 15.5.2.6.1. Grouping Options

    * 15.5.2.7. Printing a version string

    * 15.5.2.8. How "optparse" handles errors

    * 15.5.2.9. Putting it all together

  * 15.5.3. Reference Guide

    * 15.5.3.1. Creating the parser

    * 15.5.3.2. Populating the parser

    * 15.5.3.3. Defining options

    * 15.5.3.4. Option attributes

    * 15.5.3.5. Standard option actions

    * 15.5.3.6. Standard option types

    * 15.5.3.7. 解析参数

    * 15.5.3.8. Querying and manipulating your option parser

    * 15.5.3.9. Conflicts between options

    * 15.5.3.10. Cleanup

    * 15.5.3.11. Other methods

  * 15.5.4. Option Callbacks

    * 15.5.4.1. Defining a callback option

    * 15.5.4.2. How callbacks are called

    * 15.5.4.3. Raising errors in a callback

    * 15.5.4.4. Callback example 1: trivial callback

    * 15.5.4.5. Callback example 2: check option order

    * 15.5.4.6. Callback example 3: check option order (generalized)

    * 15.5.4.7. Callback example 4: check arbitrary condition

    * 15.5.4.8. Callback example 5: fixed arguments

    * 15.5.4.9. Callback example 6: variable arguments

  * 15.5.5. Extending "optparse"

    * 15.5.5.1. Adding new types

    * 15.5.5.2. Adding new actions

* 15.6. "getopt" — C-style parser for command line options

* 15.7. 模块 "logging" — Python 的日志记录工具

  * 15.7.1. Logger 对象

  * 15.7.2. 日志级别

  * 15.7.3. Handler Objects

  * 15.7.4. Formatter Objects

  * 15.7.5. Filter Objects

  * 15.7.6. LogRecord Objects

  * 15.7.7. LogRecord attributes

  * 15.7.8. LoggerAdapter Objects

  * 15.7.9. 线程安全

  * 15.7.10. 模块级别函数

  * 15.7.11. Integration with the warnings module

* 15.8. "logging.config" — 日志记录配置

  * 15.8.1. Configuration functions

  * 15.8.2. Configuration dictionary schema

    * 15.8.2.1. Dictionary Schema Details

    * 15.8.2.2. Incremental Configuration

    * 15.8.2.3. Object connections

    * 15.8.2.4. User-defined objects

    * 15.8.2.5. Access to external objects

    * 15.8.2.6. Access to internal objects

    * 15.8.2.7. Import resolution and custom importers

  * 15.8.3. Configuration file format

* 15.9. "logging.handlers" — Logging handlers

  * 15.9.1. StreamHandler

  * 15.9.2. FileHandler

  * 15.9.3. NullHandler

  * 15.9.4. WatchedFileHandler

  * 15.9.5. RotatingFileHandler

  * 15.9.6. TimedRotatingFileHandler

  * 15.9.7. SocketHandler

  * 15.9.8. DatagramHandler

  * 15.9.9. SysLogHandler

  * 15.9.10. NTEventLogHandler

  * 15.9.11. SMTPHandler

  * 15.9.12. MemoryHandler

  * 15.9.13. HTTPHandler

* 15.10. "getpass" — 便携式密码输入工具

* 15.11. "curses" — 终端字符单元显示的处理

  * 15.11.1. 函数

  * 15.11.2. Window Objects

  * 15.11.3. 常量

* 15.12. "curses.textpad" — Text input widget for curses programs

  * 15.12.1. 文本框对象

* 15.13. "curses.ascii" — Utilities for ASCII characters

* 15.14. "curses.panel" — A panel stack extension for curses

  * 15.14.1. 函数

  * 15.14.2. Panel Objects

* 15.15. "platform" —  获取底层平台的标识数据

  * 15.15.1. 跨平台

  * 15.15.2. Java平台

  * 15.15.3. Windows平台

    * 15.15.3.1. Win95/98 specific

  * 15.15.4. Mac OS平台

  * 15.15.5. Unix Platforms

* 15.16. "errno" — Standard errno system symbols

* 15.17. "ctypes" — Python 的外部函数库

  * 15.17.1. ctypes 教程

    * 15.17.1.1. 载入动态连接库

    * 15.17.1.2. 操作导入的动态链接库中的函数

    * 15.17.1.3. 调用函数

    * 15.17.1.4. 基础数据类型

    * 15.17.1.5. 调用函数，继续

    * 15.17.1.6. 使用自定义的数据类型调用函数

    * 15.17.1.7. Specifying the required argument types (function
      prototypes)

    * 15.17.1.8. Return types

    * 15.17.1.9. Passing pointers (or: passing parameters by
      reference)

    * 15.17.1.10. Structures and unions

    * 15.17.1.11. Structure/union alignment and byte order

    * 15.17.1.12. Bit fields in structures and unions

    * 15.17.1.13. Arrays

    * 15.17.1.14. Pointers

    * 15.17.1.15. Type conversions

    * 15.17.1.16. Incomplete Types

    * 15.17.1.17. Callback functions

    * 15.17.1.18. Accessing values exported from dlls

    * 15.17.1.19. Surprises

    * 15.17.1.20. Variable-sized data types

  * 15.17.2. ctypes reference

    * 15.17.2.1. Finding shared libraries

    * 15.17.2.2. Loading shared libraries

    * 15.17.2.3. Foreign functions

    * 15.17.2.4. Function prototypes

    * 15.17.2.5. Utility functions

    * 15.17.2.6. Data types

    * 15.17.2.7. 基础数据类型

    * 15.17.2.8. Structured data types

    * 15.17.2.9. Arrays and pointers
