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