python内置函数enumrate使用

enumerate()是python内置方法,遍历序列中的元素以及下标,返回元组。

例子:
l1=["a","b","c","d","e","f"]
for item in enumerate(l1):
    print (item)
# 结果:
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd')
(4, 'e')
(5, 'f')
for x,item in enumerate(l1):
    print (x,item)
# 结果:
0 a
1 b
2 c
3 d
4 e
5 f

案例:利用open方法从文件读书配置信息,进行分析
baseftp.ini配置文件信息:
======
# user passwd privilege path
# neo 123456 elradfmwM /home/neo/data
neo 123456 elradfmwM /home/neo
======
测试代码:
#!/bin/python3.5
# -- coding:utf-8 --
# 判断是否包含#号的行,如果是,则返回此行的#号之前的数据,如果#号在第一,返回空列表
def ignor_octothrpe(text):
for x,item in enumerate(text):
if item == "#":
return text[:x] # 切片返回的数据类型也是为str
pass
return text # str数据类型

def init_user_config():
    try:
        f = open("baseftp.ini",encoding='utf-8')
        f.close()
    except:
        print ("config file not found.")
        exit (1)

    while 1:        # 无限循环,达到目的,利用内部的break跳出此循环
        line = f.readline()    # line为读取配置文件的每一行,readline()一行一行的读取,line为str字符串类型数据
        if len(ignor_octothrpe(line)) > 3:  # ignor_octothrpe(line) 返回的是一个字符串类型的数据,作为len的变量,得到还是一个字符串,
        大于3,进行user_list.append,是否不够合理?
            user_list.append(line.split())   # split方法讲字符串,以空格为分隔符号进行分列,每列追加到user_list列表
        if not line:    # line行读完,即可跳出循环
            break

if __name__ == '__main__':
    user_list = []
    init_user_config()
    print (user_list)   # 得到的最终这样的列表[['neo', '123456', 'elradfmwM', '/home/neo']]

你可能感兴趣的:(python内置函数enumrate使用)