在 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() 类。

免责声明:
1.本站所有内容由本站原创、网络转载、消息撰写、网友投稿等几部分组成。
2.本站原创文字内容若未经特别声明,则遵循协议CC3.0共享协议,转载请务必注明原文链接。
3.本站部分来源于网络转载的文章信息是出于传递更多信息之目的,不意味着赞同其观点。
4.本站所有源码与软件均为原作者提供,仅供学习和研究使用。
5.如您对本网站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。
火焰兔 » 在 Python 中用 "\r\n" 分割字符串