天天看点

用Python遍历文件

  • os.listdir:列出目次下的文件和文件夹
  • os.path.join:拼接获得一个文件/文件夹的全路径
  • os.path.isfile:断定是否是文件
  • os.path.splitext:从名称中取出一个子项目组
folders = os.listdir(folder)
curname = os.path.join(folder, name)
isfile = os.path.isfile(curname)
ext = os.path.splitext(curname)[1]

------------------------------------------------------

import os

users = [] # 用来保存从文件中读取的数据

for item in os.listdir('.'): # 遍历指定目录
    if os.path.isfile(item) and item.endswith('.txt'): # 判断是否为.txt文件
        f = open(item) # 打开文件

        for line in f: # 读入文件的每一行
            if line.startswith('用户名'): # 变量初始化
                uid = age = sex = None    
            elif line.startswith("用户id"): # 根据每行开始内容获取数据
                uid = line.split()[1]
            elif line.startswith("年龄"):
                age = line.split()[1]
            elif line.startswith("性别"):
                sex = line.split()[1]
                users.append([uid, age, sex]) # 将所获得的数据以列表的形式追加到数组中
                
        f.close() # 关闭文件

print(users) # 打印数组内容

# [['12345', '23', '男'], ['12346', '23', '男'], ['12347', '23', '男'], ['12348', '23', '男']]

使用的数据文件:
1.txt
------------
用户名 abc
------------
用户id 12345

年龄 23

性别 男

------------
用户名 小张
------------
用户id 12346

年龄 23

性别 男

2.txt
------------
用户名 张三
------------
用户id 12347

年龄 23

性别 男

------------
用户名 李四
------------
用户id 12348

年龄 23

性别 男