需求背景:
有一个txt文件,里面包含了大量用户及用户的身份证号,用逗号分隔;每用户包含姓名和身份证号两部分,姓名和身份证之间有下划线。
如下这个样子: 姓名1_身份证号1,姓名2_身份证2,姓名3_身份证3,。。。。
但是密密麻麻的,混在一块;
正好此时我在验证一个功能接口,其中用户姓名和身份证号是必填项,且不能重复,我就想从excel中按行获取。但是同事没有现成的excel; 也没有按行排列整齐的txt. 只有这个排列不分行,字段还被拼接在一块的一个用户身份信息文档。我就考虑把这个文档中的用户名提取出来,用户身份证提取出来。 提取出来后就可以进一步做优化了。
需求描述:
本示例主要实现:从txt文档里查找某特定字符串(用户姓名和用户身份证号),并统计其出现次数(这里表示文档里包含的用户数)。
import re
def readtxt():
# 乘客的姓名和身份证号需要参数化,数据来源于txt
txt = open(r"D:\pyproject\data\youxiao_user.txt", "r").read() # .read()函数作用是读取出打开的txt文档的内容
passenger_num = len(re.findall("_", txt)) # re.findall() 从一堆内容中找到所有符合条件的字符,返回一个list
print(passenger_num)
passenger_list = txt.split(",")
passenger_index = random.randint(0, passenger_num-1) # 从m~n之间(包括m和n),随机选出一个整数。
passengers = passenger_list[passenger_index]
passenger_name_id = passengers.split("_")
passenger_name = passenger_name_id[0]
passenger_id = passenger_name_id[1]
print(passenger_name, passenger_id)
.read() 读取整个文件
.readline() 读取下一行
.readlines() 读取整个文件到一个list中,以供使用,比较方便