Python操作txt文本文件

时间:2021-02-25 17:21:52

题目:

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"}]

解答:

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

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

 def getDictDatas_FromFile(filePath):
# 读取数据 --按行读取文件中的数据
fs = open(filePath) # 打开文件
lines = fs.readlines() # 按行读取 for line in lines: # 循环处理每行数据
# print(line)
datas = line.strip("\n").split(",") # 对每行进行处理,strip("\n")去掉前后换行符,split(",")使用,号分隔
urls = {} # 定义一个空字典
for i in datas: # 获取datas列表中的每一条数据
temp = i.split(":", 1) # 将datas中每一条数据用 :号分隔1次
# print(temp)
urls[temp[0]] = temp[1] # 键-值对添加值 key = value
print(urls) 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': '', 'url': 'http://119.23.241.154:8080/futureloan/mvc/api/member/login', 'mobilephone': ''}
{'pwd': '', 'url': 'http://119.23.241.154:8080/futureloan/mvc/api/member/login', 'mobilephone': ''}