一、从csv文件中获取

import os
import csv class GetDataFromCsvFile(): def __init__(self, csv_file, params_list):
self.__csv_file = csv_file
self.__params_list = params_list def get_data_from_csv(self):
__test_data_list = []
if os.path.isfile(self.__csv_file) and isinstance(self.__params_list, list) and len(self.__params_list) != 0:
with open(self.__csv_file, 'r') as f:
data_lines = csv.reader(f)
for data_line in data_lines:
one_data_dict = dict(zip(self.__params_list, data_line))
__test_data_list.append(one_data_dict)
return __test_data_list
else:
print('parameters error')
return None if __name__ == '__main__':
csv_file = 'E:/test.csv'
params_list = ['a', 'c', 'b', 'e']
gd = GetDataFromCsvFile(csv_file, params_list)
result = gd.get_data_from_csv()
print(result) 二、从txt中获取
import os

class GetDataFromTxtFile:

    def __init__(self, txt_file, params_list):
self.__txt_file = txt_file
self.__params_list = params_list def get_data_from_txt(self, test_count=None):
__test_data_list = []
_result_data_list = []
if os.path.exists(self.__txt_file) and os.path.isfile(self.__txt_file) and isinstance(self.__params_list,
list) and len(self.__params_list) != 0:
total_lines = len(open(self.__txt_file, 'rb').readlines())
with open(self.__txt_file, 'r', encoding='utf-8') as f:
data_lines = f.readlines()
i = 0
for line in data_lines:
line = line.strip()
if not len(line) or line.startswith('#'):
i = i + 1
continue
data_line_list = line.strip('\n').split('|')
one_test_data_dict = dict(zip(self.__params_list, data_line_list))
__test_data_list.append(one_test_data_dict)
valid_lines = total_lines - i
if test_count is None or test_count > valid_lines or test_count <= 0:
test_count = valid_lines
for i in range(test_count):
_result_data_list.append(__test_data_list[i])
return _result_data_list
else:
log.error('get parameters data error')
raise IOError('file not exists or file name wrong')

if __name__ == '__main__':
txt_file = 'E:/test.txt'
params_list = ['a', 'c', 'b', 'e']
gd = GetDataFromTxtFile(txt_file, params_list)
result = gd.get_data_from_txt()
print(result)

python--get_data_from_csv_or_txt的更多相关文章

  1. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  2. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  3. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  4. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  5. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  6. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  7. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  8. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

  9. python开发编译器

    引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...

  10. 关于解决python线上问题的几种有效技术

    工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...

随机推荐

  1. 改动app的默认设置(包含改动默认launcher)

    1.改为自己的launcher ComponentName component = new ComponentName( context.getPackageName(), MainActivity. ...

  2. Jackson 时间格式化,时间注解 @JsonFormat 与 @DatetimeFormat 用法、时差问题说明

    @JsonFormat 使用 我们可以有两种用法(我知道的),在对象属性上,或者在属性的 getter 方法上,如下代码所示: 增加到属性上: ... ... /**更新时间 用户可以点击更新,保存最 ...

  3. Spring Cloud重试机制与各组件的重试总结

    SpringCloud重试机制配置 首先声明一点,这里的重试并不是报错以后的重试,而是负载均衡客户端发现远程请求实例不可到达后,去重试其他实例. ? 1 2 3 4 5 6 7 8 @Bean @Lo ...

  4. maven中配置jdk版本

    1 maven 中配置 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins< ...

  5. 从零开始,跟我一起做jblog项目(二)Maven

    从零开始,跟我一起做jblog项目(一)引言 从零开始,跟我一起做jblog项目(二)Maven maven是一个项目管理工具,尤其适用于JAVA世界 在jblog的开发前期,还没有系统使用过mave ...

  6. (转)love2d有用的辅助库--gamework

    此文转自朱大仙,感谢他的劳作. 翻译来源地址:https://github.com/Kadoba/gamework gamework是控制LOVE2D游戏进程流的一个项目. ↑ 这个是按原文译的, 当 ...

  7. Unix系统编程()信号处理器简介

    信号处理器简介 信号处理器程序(也称为信号捕捉器)是当指定信号传递给进程时将会调用的一个函数.这里会学习信号处理器的基本原理,后面将继续学习. 调用信号处理器程序,可能会随时打断主程序流程:内核代表进 ...

  8. c/c++常见关键字解释

    c语言中常见关键字:  char :    =>声明字符型变量或函数 double :=>声明双精度变量或函数 enum :  =>声明枚举类型 float:     =>声明 ...

  9. nginx 的 autoindex on首页不显示的问题 按照下面几行要写上不然不行

    [root@test html]# vim ../conf/nginx.confworker_processes  1;events {    worker_connections  1024;}ht ...

  10. IOS微信API异常:unrecognized selector sent to instance 0x17005c9b0'

    开发IOS整合微信API的时候,在运行程序的过程中可能会在注册你的APPID的时候抛出此异常而导致程序崩溃. 异常描述 [7661:2826851] *** Terminating app due t ...