在 Python 中用 "\r\n" 分割字符串
使用 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']
过滤器函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。
如果为函数参数传递
None
,则可迭代的所有虚假元素都将被删除。
所有不真实的值都被认为是虚假的。 Python 中的虚假值是:
- 定义为虚假的常量:None 和 False。
- 任何数字类型的 0(零)
- 空序列和集合:””(空字符串)、()(空元组)、[](空列表)、{}(空字典)、set()(空集)、range(0)(空范围)。
请注意,filter()
函数返回一个过滤器对象(不是列表)。 如果需要将对象转换为列表,请将其传递给 list()
类。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。