我正在编写一个数据清理脚本(MS Smart Quotes 等),它将在以 Latin1 编码的 mySQL 表上运行。在扫描数据时,我注意到换行符处有大量 0D 0A。
由于我正在清理数据,我是否也应该通过删除它们来解决所有 0D 问题?是否有充分的理由再保留 0D(回车)?
谢谢!
我正在编写一个数据清理脚本(MS Smart Quotes 等),它将在以 Latin1 编码的 mySQL 表上运行。在扫描数据时,我注意到换行符处有大量 0D 0A。
由于我正在清理数据,我是否也应该通过删除它们来解决所有 0D 问题?是否有充分的理由再保留 0D(回车)?
谢谢!
0D0A (\r\n) 和 0A (\n) 是行终止符;\r\n 主要用于 OS Windows,\n 用于 unix 系统。
是否有充分的理由继续保持 0D?
我认为你应该自己回答这个问题。您可以从数据中删除 '\r',但要确保将使用此数据的程序理解 '\n' 意味着行尾非常好。在大多数情况下,它会被考虑在内,但以防万一。
CR/LF 组合是 Windows 的东西。*NIX 操作系统只使用 LF。因此,根据使用您的数据的应用程序,您需要决定是否要/需要过滤掉 CR。有关更多信息,请参阅换行符上的 Wikipedia 条目。
Python 的 readline() 返回一行后跟 \O12。\O 表示八进制。12 是十进制 10 的八进制。您可以在 ASCII 表中看到 Dec 10 是 NL 或 LF。换行或换行。
unix 文本或脚本文件中的行尾标准。
所以请注意 len() 将包括 NL,除非您尝试读取 EOF,否则 len() 永远不会为零。
因此,如果您将 Python readline() 获得的任何文本行插入到 mysql 表中,它将默认包含 NL 字符,最后。