在 Python 中用“\r\n”拆分字符串
Split a string by “\r\n” in Python
使用该str.splitlines()
方法将字符串拆分为\r\n
,例如
my_list = my_str.splitlines()
。该splitlines
方法在每个换行符处拆分字符串并返回字符串中的行列表。
主程序
my_str = 'one\r\ntwo\r\nthree' result = my_str.splitlines() print(result) # 👉️ ['one', 'two', 'three']
str.splitlines
方法在换行符处
拆分字符串并返回包含字符串中的行的列表。
该方法不包括换行符,除非keepends
参数设置为True
。
主程序
my_str = 'one\r\ntwo\r\nthree' result = my_str.splitlines() print(result) # 👉️ ['one', 'two', 'three'] # 👇️ ['one\r\n', 'two\r\n', 'three'] print(my_str.splitlines(True))
该str.splitlines
方法在各种线边界上拆分,例如\n
、\r
、
\r\n
等。
主程序
my_str = 'one\rtwo\r\nthree\n' result = my_str.splitlines() print(result) # 👉️ ['one', 'two', 'three']
如果字符串以换行符结尾,则该splitlines()
方法将其删除,而不是str.split()
方法。
主程序
my_str = 'one\r\ntwo\r\nthree\r\n' result = my_str.splitlines() print(result) # 👉️ ['one', 'two', 'three'] # # 👇️ ['one', 'two', 'three', ''] print(my_str.split('\r\n'))
如果文本和换行符之间有空格,请使用
str.strip()
方法将其删除。
主程序
my_str = 'one \r\ntwo \r\nthree \r\n' my_list = [line.strip() for line in my_str.splitlines()] print(my_list) # 👉️ ['one', 'two', 'three']
我们使用了列表理解。列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们调用该
str.strip()
方法从字符串中去除任何前导和尾随空格。如果您在结果中得到空字符串并想过滤掉它们,请使用该
filter()
函数。
主程序
my_str = '\r\none\r\ntwo\r\nthree\r\n' my_list = list(filter(None, my_str.splitlines())) print(my_list) # 👉️ ['one', 'two', 'three']
filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。
如果您传递
None
函数参数,则 iterable 的所有虚假元素都将被删除。所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
请注意,该filter()
函数返回一个过滤器对象(不是列表)。如果需要将对象转换为列表,请将其传递给list()
类。