Python String splitlines() 函数用法

2023-09-17 22:22:55

splitlines() 方法在行边界处拆分字符串,并返回字符串中的行列表。 除非将参数指定为 True keepends否则列表中不包括换行符。

语法:

str.splitlines(keepends)

参数:

keepends:(可选)在换行符中设置 True,否则应包含 False。默认值为 False

\t

返回值:

包含所有行的列表对象。

以下字符被视为线边界:

Line Boundaries CharDescription
\nLine Feed
\rCarriage Return
\n\rCarriage Return + Line Feed
\v or \x0bLine Tabulation
\f or \x0cForm Feed
\x1cFile Separator
\x1dGroup Separator
\x1eRecord Separator
\x85Next Line (C1 Control Code)
\u2028Line Separator
\u2029Paragraph Separator

下面的示例演示了 splitlines() 方法的简单用法。

\t
mystr = '''Python
is a
programming language'''
print(mystr.splitlines())

输出:

['Python', 'is a', 'programming language']

在上面的示例中,三重'''用于定义多行字符串。默认情况下,它使用 \n 作为线边界。 因此,splitlines()将在每个换行符处拆分,并返回字符串元素的行列表。 我们没有指定keepends参数,该参数默认为 False,因此不包括每个元素中的\n

以下示例将 keepends 参数指定为 True,因此\n包含在列表中。

\t
mystr = '''Python
is a
programming language'''
print(mystr.splitlines(True))

输出:

['Python\n', 'is a\n', 'programming language']

splitlines()方法将是一个字符串,具有上表中指定的任何线边界。

\t
langs = 'C#\rPython\rJava\rSQL\rHadoop' # \r as line boundary
print(langs.splitlines())
langs = 'C#\vPython\vJava\vSQL\vHadoop' # \v as line boundary
print(langs.splitlines())
langs = 'C#\x1dPython\x1dJava\x1dSQL\x1dHadoop' # \x1d as line boundary
print(langs.splitlines())

输出:

['C#', 'Python', 'Java', 'SQL', 'Hadoop']
['C#', 'Python', 'Java', 'SQL', 'Hadoop']
['C#', 'Python', 'Java', 'SQL', 'Hadoop']

splitlines() 方法还将整数值作为其参数,其中 0 为 False,其余数值(正和负)为 True。

\t
langs = 'C#\rPython\rJava\rSQL\rHadoop' # \r as line boundary
print(langs.splitlines(0))
print(langs.splitlines(1)) # keeps line breaks

输出:

['C#', 'Python', 'Java', 'SQL', 'Hadoop']
['C#\r', 'Python\r', 'Java\r', 'SQL\r', 'Hadoop']

splitlines() 方法返回空字符串的空列表,如果字符串不包含线边界,则返回将整个字符串作为单个元素的列表,如下所示。

\t
mystr = ''
print(mystr.splitlines())
langs = 'Hello World' 
print(langs.splitlines())

输出:

[]
['Hello World']