python3练习4:从txt或csv文件中读取数据并以字典存储返回_读取dict.txt,以list返回词典_放开那只大熊猫的博客-程序员秘密

技术标签: 软件测试  python+selenium自动化  python3基础  

 1、读取txt文件并返回字典

文件内容如下:

代码如下:

#!/usr/bin/env python
# coding=utf-8
import codecs


def read_txt(path):
    txt_dict = {}
    with codecs.open(path, 'r', 'utf-8') as config:
        for line in config.readlines():
            # 遍历文件中每一行并以“=”分隔,再做列表解析,使用for循环去掉换行符,并以列表形式返回
            result = [ele.strip() for ele in line.split('=', 1)]
            # 先使用dict()将嵌套列表'[result]'转换成字典,再使用update更新字典
            txt_dict.update(dict([result]))
        return txt_dict

运行结果如下:

2、读取csv文件

import csv
#打开文件,用with打开可以不用去特意关闭file了,python3不支持file()打开文件,只能用open()
with open("XXX.csv","r",encoding="utf-8") as csvfile:
     #读取csv文件,返回的是迭代类型
     read = csv.reader(csvfile)
     for i in read:
          print(i)

3、读取csv文件并返回字典:

文件如下:

代码如下: 

#!/usr/bin/env python
# coding=utf-8
import codecs
import csv

with codecs.open('D:/userinfo.csv', 'r', encoding='utf-8') as fp:
    fp_key = csv.reader(fp)
    for csv_key in fp_key:
        print('字典的key值:%s' % csv_key)
        csv_reader = csv.DictReader(fp, fieldnames=csv_key)
        print('DictReader()方法返回值:%s' % csv_reader)
        for row in csv_reader:
            print('--------->>')
            csv_dict = dict(row)
            print(csv_dict)

运行结果如下:

注意:读取csv文件的两个方法reader()和DictReader():
import csv
#csv文件,是一种常用的文本格式,用以存储表格数据,很多程序在处理数据时会遇到csv格式文件

files=open('test.csv','rb')

#方法一:按行读取,返回的是一个迭代对象
'''
reader=csv.reader(files)
for line in reader:
    print(line)
'''
print '***'*10

#方法二:读取结果生成一个dict
Reader=csv.DictReader(files)
for row in Reader:
    #print(row)
    #上一句输出结果:
    #{'url': 'baidu.com', 'xuhao': '1', 'key': '\xe7\x99\xbe\xe5\xba\xa6'}
    #简单的数据处理
    print(row['xuhao'],row['url'])
    
files.close()
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yijinaqingan/article/details/85240279

智能推荐

React Ajax this.IsMounted() is not a function_皮皮和小岸的博客-程序员秘密

大概是这样的代码$.ajax({ ... success: function(data) { var quote = data[0].media; if (this.isMounted()){ this.setState({ quotes: quote });

NetFlow学习笔记_jack237的博客-程序员秘密

NetFlow是一种数据交换方式。Netflow提供网络流量的会话级视图,记录下每个TCP/IP事务的信息。也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读。Netflow由Cisco创造。 工作原理:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹

双系统安装Ubuntu16.04+uhd+gnuradio USRP B210环境配置_MapleSky`的博客-程序员秘密

双系统安装Ubuntu16.04+UHD+GNURADIO B210环境配置环境介绍一、安装系统二、关闭自动更新三、安装显卡驱动四、换国内源五、安装代理六、安装UHD七、安装gnuradio八、安装Flatabulous(扁平化风格的桌面主题)环境介绍NameVersionUbuntu16.04.6LTSuhd3.15.0.0(UHD-3.15.LTS)gnuradio3.7.14.0一、安装系统引导盘使用rufus制作(官网,官方教程),在阿里云镜像站 -

从零开始搭建完整的电影全栈系统(七)——基于Flutter开发的影视App展示_刘强西哥哥的博客-程序员秘密

项目地址:https://github.com/shipinbaoku/FlutterMovies欢迎Star!给点动力!多图杀猫,直接展示页面pubspec.yamlname: androiddescription: 今日看片客户端# The following defines the version and build number for your application.# A version number is three numbers separated b

DB2和Oracle的并发控制(锁)比较_zgmzyr的博客-程序员秘密

<br />转载于:http://soft.chinabyte.com/270/7513770.shtml<br /> <br />1 引言<br />  在关系数据库(DB2,Oracle,Sybase,Informix和SQL Server)最小的恢复和交易单位为一个事务(Transactions),事务具有ACID(原子性,一致性,隔离性和永久性)特征。关系数据库为了确保并发用户在存取同一数据库对象时的正确性(即无丢失更新、可重复读、不读"脏"数据,无"幻像"读),数据库中引入了并发(锁)机制。基本的

C++中计算某一段程序运行时间的方法_liangwgl的博客-程序员秘密

1.结果输出是微秒的  1)头文件  #include&amp;lt;ctime&amp;gt;        clock_t start, finish;        start = clock();        //插入要测试的程序段         finish = clock();       cout &amp;lt;&amp;lt; finish - start &amp;lt;&amp;lt; &quot;/&quot; &amp;lt;&amp;lt; CLO...

随便推点

OpenWrt的Luci之Web页面开发_luci.http.prepare_content_追梦赤子心刘大哥的博客-程序员秘密

翻译自github:https://github.com/openwrt/luci/wiki/ModulesHowTo或官方http://luci.subsignal.org/trac/wiki/Documentation/ModulesHowTo编写LUCI模块1、Luci简介LuCI是OpenWrt上的Web管理界面,LuCI采用了MVC三层架构,使用Lua脚本开发,所以开发L...

postman请求接口,接口返回一个css的登录界面,怎么办_接口返回css_现在,此刻的博客-程序员秘密

两种办法headers里加上登录的cookies,cookies在网页的开发者模式里找在代码里修改拦截器允许接口访问

c++学习--静态链表和动态链表的区别_hongge372的博客-程序员秘密

https://blog.csdn.net/zhengqijun_/article/details/78192888态链表和动态链表的区别:静态链表和动态链表是线性表链式存储结构的两种不同的表示方式。1、静态链表是用类似于数组方法实现的,是顺序的存储结构,在物理地址上是连续的,而且需要预先分配地址空间大小。所以静态链表的初始长度一般是固定的,在做插入和删除操作时不需要移动元素,仅需修改指针。2、动...

Memcached linux安装_linux安装 memcached报错_yin_jw的博客-程序员秘密

原文:http://www.cnblogs.com/czh-liyu/archive/2010/04/27/1722084.htmlmemcached 安装需要依赖GCC和libevent,所以首先要安装这2款软件。一、安装GCCGCC一般linux都会自带,用gcc -v 查看是否安装了。如没有安装GCC,使用如下命令安装GCC:# yum install gcc 二、安

使用Axure制作App原型的尺寸设置_weixin_33711647的博客-程序员秘密

想用Axure设计一个 APP原型 放到真实的移动设备中演示,但不知道应该使用什么尺寸?这里直接给大家提供一个常用的移动设备尺寸列表,制作原型时根据查询的尺寸在axure中设置大小即可,设计完毕后在生成HTML时设置 手机/移动设备 中勾选包含视图接口( include Viewport tag ),并进行配置即可。如:iPhone4 320*480iPhone5 32...

推荐文章

热门文章

相关标签