通用作業系統服務
****************

此章節所描述的模組 (module) 提供了作業系統特性的使用介面，例如檔案與時
鐘，（幾乎）在所有作業系統上皆能使用。這些介面通常是參考 Unix 或 C 的
介面來實作，不過在其他大多數系統上也能使用。以下為概述：

* "os" --- 各種作業系統介面

  * File Names, Command Line Arguments, and Environment Variables

  * Python UTF-8 模式

  * 行程參數

  * File Object Creation

  * File Descriptor Operations

    * Querying the size of a terminal

    * Inheritance of File Descriptors

  * Files and Directories

    * Linux extended attributes

  * 行程管理

  * Interface to the scheduler

  * Miscellaneous System Information

  * Random numbers

* "io" — 處理資料串流的核心工具

  * 總覽

    * 文字 I/O

    * 二進位 (Binary) I/O

    * 原始 (Raw) I/O

  * 文字編碼

    * 選擇性加入的編碼警告

  * 高階模組介面

  * 類別階層

    * I/O 基礎類別

    * 原始檔案 I/O

    * Buffered Streams

    * 文字 I/O

  * Performance

    * 二進位 (Binary) I/O

    * 文字 I/O

    * Multi-threading

    * Reentrancy

* "time" --- 時間存取與轉換

  * 函式

  * Clock ID Constants

  * Timezone Constants

* "argparse" --- Parser for command-line options, arguments and
  subcommands

  * ArgumentParser 物件

    * prog

    * usage

    * 描述

    * epilog

    * parents

    * formatter_class

    * prefix_chars

    * fromfile_prefix_chars

    * argument_default

    * allow_abbrev

    * conflict_handler

    * add_help

    * exit_on_error

  * The add_argument() method

    * name or flags

    * action

    * nargs

    * const

    * default

    * type

    * choices

    * required

    * 幫助

    * metavar

    * dest

    * Action classes

  * The parse_args() method

    * Option value syntax

    * Invalid arguments

    * Arguments containing "-"

    * Argument abbreviations (prefix matching)

    * Beyond "sys.argv"

    * The Namespace object

  * Other utilities

    * Sub-commands

    * FileType 物件

    * Argument groups

    * Mutual exclusion

    * Parser defaults

    * Printing help

    * Partial parsing

    * Customizing file parsing

    * Exiting methods

    * Intermixed parsing

    * Registering custom types or actions

  * Exceptions

    * Argparse 教學

      * 概念

      * 基本用法

      * 位置引數的介紹

      * 可選引數的介紹

        * 短選項

      * 組合位置引數和可選引數

      * 更進階一點

        * 指定不明確的引數

        * 相互衝突的選項

      * 如何翻譯 argparse 輸出

      * Custom type converters

      * 結論

    * Upgrading optparse code

* "getopt" --- 用於命令列選項的 C 風格剖析器

* "logging" --- Python 的日誌記錄工具

  * Logger 物件

  * Logging Levels

  * Handler Objects

  * Formatter Objects

  * Filter Objects

  * LogRecord 物件

  * LogRecord attributes

  * LoggerAdapter 物件

  * Thread Safety

  * Module-Level Functions

  * Module-Level Attributes

  * Integration with the warnings module

* "logging.config" --- 日誌記錄配置

  * Configuration functions

  * Security considerations

  * Configuration dictionary schema

    * Dictionary Schema Details

    * Incremental Configuration

    * Object connections

    * User-defined objects

    * Handler configuration order

    * Access to external objects

    * Access to internal objects

    * Import resolution and custom importers

    * Configuring QueueHandler and QueueListener

  * Configuration file format

* "logging.handlers" --- 日誌紀錄處理器

  * StreamHandler

  * FileHandler

  * NullHandler

  * WatchedFileHandler

  * BaseRotatingHandler

  * RotatingFileHandler

  * TimedRotatingFileHandler

  * SocketHandler

  * DatagramHandler

  * SysLogHandler

  * NTEventLogHandler

  * SMTPHandler

  * MemoryHandler

  * HTTPHandler

  * QueueHandler

  * QueueListener

* "getpass" --- 可攜式密碼輸入工具

* "curses" --- 字元儲存格顯示的終端處理

  * 函式

  * Window Objects

  * Constants

* "curses.textpad" --- Text input widget for curses programs

  * Textbox objects

* "curses.ascii" --- ASCII 字元的工具程式

* "curses.panel" --- curses 的面板堆疊擴充

  * 函式

  * Panel Objects

* "platform" ---  對底層平臺識別資料的存取

  * 跨平台

  * Java 平台

  * Windows 平台

  * macOS 平台

  * Unix 平台

  * Linux 平台

* "errno" --- 標準 errno 系統符號

* "ctypes" --- 用於 Python 的外部函式庫

  * ctypes 教學

    * Loading dynamic link libraries

    * Accessing functions from loaded dlls

    * 呼叫函式

    * Fundamental data types

    * Calling functions, continued

    * Calling variadic functions

    * Calling functions with your own custom data types

    * Specifying the required argument types (function prototypes)

    * Return types

    * Passing pointers (or: passing parameters by reference)

    * Structures and unions

    * Structure/union alignment and byte order

    * Bit fields in structures and unions

    * Arrays

    * Pointers

    * Type conversions

    * Incomplete Types

    * 回呼函式

    * Accessing values exported from dlls

    * Surprises

    * Variable-sized data types

  * ctypes reference

    * Finding shared libraries

    * Loading shared libraries

    * Foreign functions

    * Function prototypes

    * Utility functions

    * Data types

    * Fundamental data types

    * Structured data types

    * Arrays and pointers
