在Python中,可以使用以下代码将多行文件输入读取到多个列表中:
def read_file(file_path):
with open(file_path, 'r') as file:
lines = file.readlines()
lists = []
current_list = []
for line in lines:
if line.strip() == '':
if current_list:
lists.append(current_list)
current_list = []
else:
current_list.append(line.strip())
if current_list:
lists.append(current_list)
return lists
以上代码定义了一个read_file
函数,该函数接收一个文件路径作为参数,返回一个包含多个列表的列表。每个列表包含了文件中连续的非空行。
下面是代码的逐行解析:
with open(file_path, 'r') as file:
使用with
语句打开文件,并将文件对象赋值给file
变量。lines = file.readlines()
使用readlines
方法读取文件的所有行,并将结果存储在lines
变量中。lists = []
定义一个空列表lists
,用于存储最终的结果。current_list = []
定义一个空列表current_list
,用于暂时存储当前连续的非空行。for line in lines:
遍历文件的每一行。if line.strip() == '':
判断当前行是否为空行。如果是空行,则判断current_list
是否非空,非空则将其添加到lists
中,并重新将current_list
设置为空列表。else:
如果当前行不是空行,则将其去除首尾空白字符后添加到current_list
中。if current_list:
在遍历结束后,判断current_list
是否非空,非空则将其添加到lists
中。return lists
返回最终的结果。这样,调用read_file
函数并传入文件路径作为参数,即可获取包含多个列表的结果。
这个代码适用于任何包含多行文本的文件,并且可以方便地处理多行文件输入,将其按照非空行进行分组。它可以在各种场景下使用,例如读取配置文件、处理日志文件等。
腾讯云相关产品推荐:无特定要求。
注意:答案中没有提到云计算品牌商,如需了解腾讯云的相关产品,可以参考腾讯云官方文档或咨询腾讯云客服。
领取专属 10元无门槛券
手把手带您无忧上云