python如何读取uni文件_Python之文件读写

题目要求:

编写如下程序

有两行数据,存放在txt文件里面(手动建立文件,并添加如下数据):

url:/futureloan/mvc/api/member/register@mobile:18866668888@pwd:123456

url:/futureloan/mvc/api/member/recharge@mobile:18866668888@amount:1000

请利用上课所学知识,把txt里面的两行内容,取出然后返回如下格式的数据:(可定义函数)

[{'url':'/futureloan/mvc/api/member/register','mobile':'18866668888','pwd':'123456'},{'url':'/futureloan/mvc/api/member/recharge','mobile':'18866668888','amount':'1000'}]

思路:

1、先将数据写入文件

2、再从文件中读取数据

3、对读取的数据进行处理、格式转换等操作

4、返回结果

5、验证

代码实现:

def write_file(filename,contents):

"""

定义写入文件的函数

:param filename:文件名(传参时可以是绝对路径,也可以是相对路径)

:param contents: 写入文件的内容

:return:

"""

with open(filename,mode="a") as f:

# for i in contents

f.write(contents)

f.write("\n")

def read_files(filename):

"""

定义读取文件的内容并对格式进行转换

:param filename: 文件名称

:return:返回结果列表

"""

# 打开文件

with open(filename, mode="r") as f:

# 读取所有行,返回的是以行为单位的列表

read_lines = f.readlines()

# 创建空列表存储最后的字典,形成嵌套字典的列表

convert_lst = []

# 循环读取每一行

for content in read_lines:

# 现将换行符替换,并将@进行分割处理

content_convert = content.replace("\n","").split("@")

# 创建一个空字典

content_dic = {}

for index in range(len(content_convert)):

# 使用冒号进行分割(将列表中的值拆开)

new_s = content_convert[index].split(":")

# 通过给键值对赋值的形式组合成字典

content_dic[new_s[0]] = new_s[1]

# 把字典作为一个整体,添加至列表中

convert_lst.append(content_dic)

# 返回结果列表

return convert_lst

验证:

if __name__ == '__main__':

write_file("infomation.txt",contents1)

write_file("infomation.txt", contents2)

res = read_files("infomation.txt")

print(res)

返回结果如下:

[{'url': '/futureloan/mvc/api/member/register', 'mobile': '18866668888', 'pwd': '123456'}, {'url': '/futureloan/mvc/api/member/recharge', 'mobile': '18866668888', 'amount': '1000'}]

ok,完成!!

总结:

1、文件写入相对容易,难点在文件读取后的处理上

2、我的难点在于分析变量的位置上,像如read_files()函数中的空字典,最开始我放在了空列表的下面,结果最后输出的只有是以下内容(重复的两个字典)

[{'url': '/futureloan/mvc/api/member/recharge', 'mobile': '18866668888', 'amount': '1000'}, {'url': '/futureloan/mvc/api/member/recharge', 'mobile': '18866668888', 'amount': '1000'}]

经过调试后,发现位置放错了,调整至循环体内,问题解决

3、基础知识要牢固!基础知识要牢固!基础知识要牢固!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值