假设我们有一个叫testdata.txt的文件,现在在这个文件里面有测试数据,我们怎么利用前2小章学习的知识,读取测试数据呢?

测试数据如下:

  url:https://www.cnblogs.com/wlyhy/,e-mail:wurz529@foxmail.com,username:11111111

  url:https://www.baidu.com/,e-mail:wurz529@163.com,usernamfore:22222222.

博主刚刚试了一下,刚接触python遇到这个问题挺烧脑的。建议从问题入手,问题说要读取测试数据。我们在测试数据中看到,都是xxx:xxxxxx的形式,是不是非常像python字典中的key:value对应模式。如果测试数据只有一行,那我们用字典完全可以。如果测试数据有多行,只用一个字典的话,key会重复,倒是覆盖问题,要解决可以采用列表。最后的输出格式就是[{},{},.....{}]这种格式。因此需要定义list,以及dict.既然输出格式确定了,那么怎么把测试数据放到这个格式呢?以第一行来看,这是一长串字符串。我们需要的元素中间以","分隔,那么想办法将","分割出去,就是字符串的split方法,split(","),通过split方法得到的是列表,这样子,我们的3个key:value就被存在列表中,形式如下["url:https://www.cnblogs.com/wlyhy/", "e-mail:wurz529@foxmail.com", "username:11111111"]。我们再以其中一个来看,":"前面是我们需要的key,":"后面则是我们需要的value,我们再次split切割,得到["url","xxxx"]这样子的格式。只差最后一步就到字典了,就是dict[list[0]] = list[1],就可以得到{"url":"xxxxxx"}了。至于一行中其他的,可以同样方法得到。所有行的字典都有了之后,通过list.append方法,加入这个大的list就行了。

实现如下:

 #!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time :2018/11/29 15:07
# @Author :Yosef
# @Email :wurz529@foxmail.com
# @File: :class31.py
# @Software :PyCharm Community Edition def read_file(filename):
file = open(filename,"r+")
list_1=[]
for items in file.readlines():
dict_1={}
for item in items.strip("\n").split(","): # 去除首尾空格,然后切割中间“,”得到list
dict_1[item.split(":",1)[0]]=item.split(":",1)[1] # 原型:dict[key]=value and list.split["",](得到list)
list_1.append(dict_1)
print(list_1)
return list_1 read_file("testdata.txt")

结果:

python之读取文件的测试数据的更多相关文章

  1. python在读取文件时出现 'gbk' codec can't decode byte 0x89 in position 68: illegal multibyte sequence

    python在读取文件时出现“UnicodeDecodeError:'gbk' codec can't decode byte 0x89 in position 68: illegal multiby ...

  2. [Head First Python]4.读取文件datafile.txt, 去除两边空格, 存储到列表,从列表格式化(nester.py)后输出到文件man.out,other.out

    datafile.txt  #文件 Man: this is the right room for an argument. Other Man: I've told you once. Man: N ...

  3. python中读取文件数据时要注意文件路径

    我们在用python进行数据处理时往往需要将文件中的数据取出来做一些处理,这时我们应该注意数据文件的路径.文件路径不对,回报如下错误: FileNotFoundError: File b'..Adve ...

  4. python中读取文件的read、readline、readlines方法区别

    #读取文件所有内容,返回字符串对象,python默认以文本方式读取文件,遇到结束符读取结束. fr = open('lenses.txt')read = fr.read()print(type(rea ...

  5. python 顺序读取文件夹下面的文件(自定义排序方式)

    我们在读取文件夹下面的文件时,有时是希望能够按照相应的顺序来读取,但是 file_lists=os.listdir()返回的文件名不一定是顺序的,也就是说结果是不固定的.就比如读取下面这些文件,希望能 ...

  6. python 逐行读取文件的三种方法

    方法一: 复制代码代码如下: f = open("foo.txt")             # 返回一个文件对象  line = f.readline()             ...

  7. Python逐行读取文件内容

    更详细的文件按行读取操作可以参考:http://www.cnblogs.com/xuxn/archive/2011/07/27/read-a-file-with-python.html 一行一行得从文 ...

  8. Python中读取文件输出时在头部输出\ufeff

    问题出现: 在我测试python中的文本文件的读取与写入时,用到了字典对象来存储读出的数据. std_data = dict() with open(sys.argv[1], encoding='UT ...

  9. python工具 - 读取文件的部分指定内容并输出到外置窗口

    一.使用场景 某些配置文件里有一些特定的字符,而这些字符恰巧需要我们采集出来,然后输出到另外一个窗口做展示时,可以使用该工具. 本例的演示则提取配置文件中的[姓名:黄蓉 女 九阴真经.姓名:郭靖 男 ...

随机推荐

  1. laravel中的模型关联之(一对一)

    一对一 一对一的关联关系就相当于,赞和文章之间的关系,一个用户只能赞一次一个文章,只能和文章发生一次关系, 用户和赞的文章是唯一的一份,这里举得是判断用户是否赞过某个文章 一个参数都是你要获取的模型, ...

  2. SaeMysql操作示例

    新浪sae的官方说明文档:http://apidoc.sinaapp.com/sae/SaeMysql.html Class SaeMysql 具体实现:http://apidoc.sinaapp.c ...

  3. 简单Factory模式

    #pragma once #include "student.h" #include "Teacher.h" typedef enum _EPersonType ...

  4. easyui-tabs 页签绑定click事件,动态加载jqgrid

    .前台代码 <%-- builed by manage.aspx.cmt [ver:] at // :: --%> <%@ Page Language="C#" ...

  5. Entity Framework 6.0 Tutorials(7):DbSet.AddRange & DbSet.RemoveRange

    DbSet.AddRange & DbSet.RemoveRange: DbSet in EF 6 has introduced new methods AddRange & Remo ...

  6. rest 参数和扩展运算符

    rest 参数和扩展运算符 rest 参数的形式为 ...变量名:扩展运算符是三个点 .... rest 参数 function add(...values) { console.log(values ...

  7. Monkey稳定性测试环境搭建说明

    一.安装Java环境 安装Java环境-JDK:下载地址:http://pan.baidu.com/s/1pJ6Yqs7,jdk安装解压即可. 二.设置环境变量 双击下载的JDK ,设置安装路径.这里 ...

  8. 《架构师杂志》评述:Scott Guthrie

    发布日期: 2007-03-29 | 更新日期: 2007-03-29   Scott Guthrie 是 Microsoft 开发事业部的总经理.他领导着负责构建 CLR(公共语言运行库).ASP. ...

  9. JavaEE互联网轻量级框架整合开发(书籍)阅读笔记(6):Spring IOC容器学习(概念、作用、Bean生命周期)

    一.IOC控制反转概念 控制反转(IOC)是一种通过描述(在Java中可以是XML或者是注解)并通过第三方去生产或获取特定对象的方式. 主动创建模式,责任在于开发者,而在被动模式下,责任归于Ioc容器 ...

  10. .net 空接合操作符 ??

    C# 提供了一个所谓的 ”空接合操作符“ - 即??操作符,他要获取两个操作数. 假如左边的操作数部位null,就返回这个操作数.如果左边的操作数为null就返回右边. 空接合操作符一个妙处在于,它既 ...