Python 函数 loadList1 代码解析:读取文件并存储到字典
这段代码定义了一个名为 'loadList1' 的 Python 函数,用于读取文件内容并将其存储到一个字典对象中。函数接受两个参数:
- 'name':要读取的文件名。
- 'coding':文件的编码方式,默认为 'utf-8'。
函数的实现过程如下:
-
初始化一个空字典对象 'obj'。
-
使用 'with open' 语句打开文件,指定读取模式为 'r' 和编码方式 'coding',并将文件对象赋值给变量 'fr'。
-
使用 'while' 循环读取文件的每一行,直到文件结束。这里使用了 Python 3.8 中的新特性 '海象运算符' (':='),它可以将读取的行赋值给变量 'line',并同时进行判断。
-
如果读取的行是空行,则跳过本次循环,继续读取下一行。
-
如果读取的行以制表符 ('\t') 开头,则说明该行是上一行信息的一部分,将其添加到字典对象 'obj' 中的对应列表中。这里使用了 Python 中的 'strip' 方法去掉行末的换行符和空格。
-
如果读取的行不是空行且不以制表符开头,则说明该行是新的信息,将其作为新的键,创建一个空列表作为对应的值,并将其添加到字典对象 'obj' 中。
-
循环结束后,返回字典对象 'obj'。
代码示例:
def loadList1(name, coding='utf-8'):
obj={}
with open(name, 'r', encoding=coding) as fr:
while line:= fr.readline():
if line=='':
continue
elif line[0]==' ':
obj[info].append(line.strip())
else:
info=line.strip()
obj[info]=[]
return obj
代码解释:
- 'with open' 语句: 用于打开文件,并确保文件在使用完后自动关闭,即使出现异常。
- 'fr.readline()' 方法: 用于读取文件的一行内容。
- '海象运算符' (':='): 将 'fr.readline()' 的返回值赋值给 'line' 变量,并同时进行判断。
- 'line.strip()' 方法: 用于去除字符串两端的空白字符。
总结:
'loadList1' 函数利用文件读取、循环、字典和海象运算符等 Python 特性,实现了读取文件内容并将其存储到字典对象中的功能。它是一个实用且灵活的函数,可以方便地处理各种文本文件。
原文地址: https://www.cveoy.top/t/topic/fXwb 著作权归作者所有。请勿转载和采集!