Python 用空行分隔符拆分

Python 用空行分隔符拆分,python,Python,使用空行“\n\n”分隔符拆分文本文件时遇到问题 re.split("\n", aString) 工作但是 re.split("\n\n", aString) 只返回整个字符串 有什么好主意吗?当心那些坏主意 Windows:CRLF(\r\n) Linux和其他Unice:LF(\n) 旧Mac:CR(\r) 您可能失败了,因为您要查找的双换行符位于Windows编码的文本文件中,并且将显示为\r\n\r\n,而不是\n\n repr()函数将确切地告诉您行尾是什么: >&g

使用空行
“\n\n”
分隔符拆分文本文件时遇到问题

re.split("\n", aString) 
工作但是

re.split("\n\n", aString) 
只返回整个字符串

有什么好主意吗?

当心那些坏主意

  • Windows:CRLF(
    \r\n
  • Linux和其他Unice:LF(
    \n
  • 旧Mac:CR(
    \r
您可能失败了,因为您要查找的双换行符位于Windows编码的文本文件中,并且将显示为
\r\n\r\n
,而不是
\n\n

repr()
函数将确切地告诉您行尾是什么:

>>> mystring = #[[a line of your file]]
>>> repr(mystring)
"'\\nmulti\\nline\\nstring '"

您确定一开始不想逐行读取文件吗

with open(file.txt, 'r') as f:
    for line in f:
        print (line)

你能举一个你正在使用的文件的例子吗?只有当文件以二进制模式打开时,他才会在Windows上遇到所谓的问题。以文本模式打开二进制文件是一个常见的问题。很少以二进制模式打开文本文件。这解决了它,谢谢!我最初是使用windows创建该文件的,因此可以解释这一点。我正在解析我创建的一个文本文件,其中的数据由行和空行分隔(以便于输入时的可读性)。我将尝试“打开…”,但我必须添加一些内容来解析空行(数据为“2d”),如果您正在逐行读取文件(使用
for line in file:
模式),那么空行将显示为
或可能是
”\r\n“
。你只需检查一下就可以了。所以只要问问这是不是一个空行: