Python操作txt文本文件

题目:

1、TXT文本文件中的内容为:
  url:http://119.23.241.154:8080/futureloan/mvc/api/member/login,mobilephone:13760246701,pwd:123456
  url:http://119.23.241.154:8080/futureloan/mvc/api/member/login,mobilephone:15678934551,pwd:234555
要求:
  1)将文件的数据读取出来,并根据逗号将其分隔出来 ;
  2)将分隔出来的数据,再以冒号进行分隔。冒号之前为key,冒号之后为value。
  3)最终结果要求如下:
    [{"url":"http://119.23.241.154:8080/futureloan/mvc/api/member/login","mobilephone":"13760246701","pwd":"123456"},
    {"url":"http://119.23.241.154:8080/futureloan/mvc/api/member/login","mobilephone":"15678934551","pwd":"234555"}]

解答:

  第一种:
 1 # 读取数据 --按行读取文件中的数据
 2 fs = open("test.txt")   # 打开文件
 3 lines = fs.readlines()  # 按行读取
 4 for line in lines:  # 循环处理每行数据
 5     # print(line)
 6     datas = line.strip("\n").split(",")     # 对每行进行处理,strip("\n")去掉前后换行符,split(",")使用,号分隔
 7     # print(datas)      # datas = ['url:http://119.23.241.154:8080/futureloan/mvc/api/member/login',
 8                         #          'mobilephone:13760246701', 'pwd:123456']
 9     urls = {}   # 定义一个空字典
10     for i in datas:     # 获取datas列表中的每一条数据
11         temp = i.split(":",1)   # 将datas中每一条数据用 :号分隔1次
12         print(temp)
13         urls[temp[0]] = temp[1]     # 键-值对添加值  key = value
14         print(urls)

  第二种:不带返回值的函数

 1 def getDictDatas_FromFile(filePath):
 2     # 读取数据 --按行读取文件中的数据
 3     fs = open(filePath)  # 打开文件
 4     lines = fs.readlines()  # 按行读取
 5 
 6     for line in lines:  # 循环处理每行数据
 7         # print(line)
 8         datas = line.strip("\n").split(",")  # 对每行进行处理,strip("\n")去掉前后换行符,split(",")使用,号分隔
 9         urls = {}  # 定义一个空字典
10         for i in datas:  # 获取datas列表中的每一条数据
11             temp = i.split(":", 1)  # 将datas中每一条数据用 :号分隔1次
12             # print(temp)
13             urls[temp[0]] = temp[1]  # 键-值对添加值  key = value
14         print(urls)
15 
16 a = getDictDatas_FromFile("test.txt")

  第三种:带返回值的函数

def getDictDatas_FromFile(filePath):
    fs = open(filePath,encoding= 'utf-8') # 打开文件
    lines = fs.readlines()  # 按行读取
    data = []   # 定义一个空列表,用来接收每行数据
    for line in lines:
        list = line.strip("\n").split(",")  # 用,号分隔,并去除换行符
        urls = {}   # 定义一个空字典
        for item in list:   # 获取list列表中的每一条数据
            temp = item.split(":",1)    # 将list中每一条数据用 :号分隔1次
            urls[temp[0]] = temp[1] # 键-值对添加值  key = value
        data.append(urls)
    return data

  执行结果:

{'pwd': '123456', 'url': 'http://119.23.241.154:8080/futureloan/mvc/api/member/login', 'mobilephone': '13760246701'}
{'pwd': '234555', 'url': 'http://119.23.241.154:8080/futureloan/mvc/api/member/login', 'mobilephone': '15678934551'}

 

posted @ 2018-05-19 17:38  Wiselee😏  阅读(2723)  评论(0编辑  收藏  举报