在Python中逐行读取多行字符串

article/2023/6/4 14:56:23

使用 str.splitlines() 方法逐行读取多行字符串,例如 for line in multiline_str.splitlines():str.splitlines() 方法在每个换行符处拆分字符串并返回字符串中的行列表。

multiline_str = """\
First line
Second line
Third line"""# First line
# Second line
# Third line
for line in multiline_str.splitlines():print(line)

Python中逐行读取多行字符串

str.splitlines() 方法将字符串拆分为换行符,并返回一个包含字符串中行的列表。

multiline_str = """\
First line
Second line
Third line"""lines = multiline_str.splitlines()
print(lines) # 👉️ ['First line', 'Second line', 'Third line']

str.splitlines() 方法将字符串拆分为换行符

除非 keepends 参数设置为 True,否则该方法不包括换行符。

multiline_str = """\
First line
Second line
Third line"""lines = multiline_str.splitlines(True)
print(lines)  # 👉️ ['First line\n', 'Second line\n', 'Third line']

str.splitlines() 方法在不同的行边界上拆分,例如 \n\r\r\n

my_str = "one\rtwo\r\nthree\n"lines = my_str.splitlines()
print(lines)  # 👉️ ['one', 'two', 'three']

如果字符串以换行符结尾,则 splitlines() 方法将其删除,而不是 str.split() 方法。

my_str = "one\ntwo\nthree\n"lines = my_str.splitlines()
print(lines)  # 👉️ ['one', 'two', 'three']lines = my_str.split('\n')
print(lines)  # 👉️ ['one', 'two', 'three', '']

如果字符串以换行符结尾 则 splitlines() 方法将其删除

请注意str.split() 方法返回的列表中的最后一项是空字符串。

使用 str.splitlines() 获取字符串中的行列表后,使用 for 循环遍历列表并逐行读取。

再看下面的例子。

multiline_str = """\
First line
Second line
Third line"""# First line
# Second line
# Third line
for line in multiline_str.splitlines():print(line)

如果文本和换行符之间有空格,请使用 str.strip() 方法将其删除。

my_str = 'one \ntwo \n three \n'# 👇️ ['one ', 'two ', ' three ']
print(my_str.splitlines())lines = [line.strip() for line in my_str.splitlines()]
print(lines)  # 👉️ ['one', 'two', 'three']

我们使用列表推导来迭代列表。

列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。

在每次迭代中,我们调用 str.strip() 方法从字符串中删除任何前导和尾随空格。

如果我们在结果中得到空字符串并想要过滤掉它们,请使用 filter() 函数。

my_str = '\rone\r\ntwo\nthree\n'# 👇️ ['', 'one', 'two', 'three']
print(my_str.splitlines())lines = list(filter(None, my_str.splitlines()))# one
# two
# three
for line in lines:print(line)

使用 filter() 函数过滤空字符串

filter() 函数将一个函数和一个迭代器作为参数,并从迭代器的元素构造一个迭代器,函数为其返回一个真值。

如果为函数参数传递 None ,则可迭代的所有虚假元素都将被删除。

空字符串是虚假值,因此空字符串列表项已从列表中删除。


https://www.dgrt.cn/a/2110890.html

相关文章

反射器、IOC/DI,动态代理、AOP

反射 1.什么是反射 1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。 2)Java属于…

SIGCHLD信号(重点)

SIGCHLD的产生条件 子进程状态发生变化就会产生SIGCHLD信号 1、子进程终止时 2、子进程接收到SIGSTOP信号停止时 3、子进程处在停止态,接受到SIGCONT后唤醒时 借助 SIGCHLD 信号回收子进程 (重要) 借助信号回收子进程https://www.bilibili.com/video/BV1KE411q7ee…

Linux线程同步---互斥锁

目录 一、互斥锁的相关函数 二、实现一个简单的互斥锁程序 (1)锁的初始化 1:静态赋值法 2:函数赋值法 (2)上锁和解锁 (3)锁的注销 三、编写一个简单的互斥锁程序 前言&#…

短视频发布软件 一键自动发布到多个平台

随着短视频行业的快速发展,越来越多的用户开始使用短视频发布软件来管理和发布他们的内容。这种软件可以让用户在多个平台上同时发布视频,并且可以自动定时发布,解放用户的时间和精力。在这篇文章中,我们将介绍短视频发布软件的几…

JavaEE简单示例——SpringMVC的异常处理

关于SpringMVC中异常处理机制的简单介绍 在Spring中,可以通过三中方式实现异常的统一处理: 第一种是使用SpringMVC提供的简单异常处理器SimoleMappingExceptionHResolver,实现异常的统一处理第二种是通过实现异常处理器接口HandlerExceptio…

JAVA——链表

一、链表概念及结构 链表:链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。如下图:(通俗的说:就是由一个个节点组成,这些节点逻辑上连续,物理上…

警惕百度中的木马程序,受害企业数持续上升

近日,有研究机构发现,名为“谷堕大盗”的黑客正利用百度中的搜索结果,大规模传播木马程序,伪装度和隐蔽程度较高,受害企业呈持续上升趋势。 调查发现,该黑客团伙针对金融、制造等行业进行的大规模钓鱼攻击…

一起运行脑电信号(EEG)源码(2)-deap dataset

第一肯定是搭建环境了 安装包,源码,数据集准备好。 在运行之前,先把环境平台搭好了,版本要对应。安装有问题也可以找我。软件安装包在这里,我用的版本在后面其他的自己搞: 链接:https://pan.b…