Planet Python 中文 关注 詹姆斯·贝内特:分手(歌词)很难做到 将文本按行拆分看似简单,实则因历史沿革与不断演变的规范而异常复杂。早期计算依赖 ASCII,其中包含用于换行的控制字符,如换行符(LINE FEED, LF)和回车符(CARRIAGE RETURN, CR)。不同的操作系统采用了这些字符的多种组合,导致纯文本的可移植性问题。例如,Windows 使用 CR LF,Unix 使用 LF,经典 Mac OS 使用 CR。Python 通过引入“通用换行”模式解决了这一问题,在打开文件时识别所有三种常见的换行格式。除传统的 CR 和 LF 之外,ASCII 还定义了换页符(FORM FEED, FF)和垂直制表符(VERTICAL TAB, VT),它们同样会导致换行。Unicode 的出现引入了七个新的码点以及 CR LF 序列作为换行指示符。这些包括换行符(LINE FEED)、行定位符(LINE TABULATION)、换页符(FORM FEED)、回车符(CARRIAGE RETURN)、下一行符(NEXT LINE)、行分隔符(LINE SEPARATOR)和段落分隔符(PARAGRAPH SEPARATOR)。此外,Unicode 的双向算法将双向类别为'B'的字符视为段落分隔符,这些字符也起到换行作用。其中包括信息分隔符四(INFORMATION SEPARATOR FOUR)、三(THREE)和二(TWO),其 ASCII 名称分别为文件分隔符(FILE SEPARATOR)、组分隔符(GROUP SEPARATOR)和记录分隔符(RECORD SEPARATOR)。总之,Python 的 splitlines() 方法识别十个不同的码点和一个多码点序列作为换行符。这一全面的集合兼顾了历史惯例与现代 Unicode 标准,用于处理文本行划分。 James Bennett: Breaking up (lines) is hard to do b-list.org Planet Python 中文 RSS thenote.app
splitlines()方法识别十个不同的码点和一个多码点序列作为换行符。这一全面的集合兼顾了历史惯例与现代 Unicode 标准,用于处理文本行划分。