python--get_data_from_csv_or_txt
一、从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的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- Netty(四):粘包问题描述及解决
拆包粘包问题解决 netty使用tcp/ip协议传输数据.而tcp/ip协议是类似水流一样的数据传输方式.多次访问的时候有可能出现数据粘包的问题,解决这种问题的方式如下: 1 定长数据流 客户端和服务 ...
- Android系统应用信息中存储和缓存的计算方法
进行例如以下操作: 设置->应用->选择一个应用->应用信息 会到达例如以下界面: 能够看到这个应用占用的磁盘空间. 先说结果,这几项会计算哪些文件(夹). 1.应用,由三项相加组成 ...
- atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模
atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模 1. 组件结构 1 2. startDraw 开始抽奖流程建模 1 3. 抽奖算法 2 作者:: 老哇的爪子 Attilax 艾龙, ...
- Vim-复制选中内容至系统剪贴板,光标移动到指定行的行首和行尾
1.全选并复制到系统剪贴板 ggVG或ggvG 然后 "+y gg 让光标移到首行,在vim才有效,vi中无效 V 是进入Visual(可视)模式 G 光标移到最后一行 "+y 复 ...
- Nokia Imaging SDK
Nokia Imaging SDK 目前为 beta 版本,是诺基亚在自己的图像应用中使用的技术同时提供给开发者 使用.这是一个运行在手机设备上处理图片数据的高效的类库.功能包括 JEPG 图片的编码 ...
- 远程登录linux上的mysql数据库
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1; 讲root账户,的HOST设置为%,允许所有公网IP访问. flush priv ...
- C++函数默认参数(转)
在代码中使用到了函数的默认参数,在函数的定义和实现中都填写的默认参数,结果出现了错误: 代码: #ifndef FIRSTPAGE_H #define FIRSTPAGE_H #include < ...
- Oracle:shared memory realm does not exist
1. 先描述一个连接Oracle 10g的错误:“shared memory realm does not exist” 如图所示Sqlplus连接时出现这个错误: 2. Oracle 服务器主要组件 ...
- josn 格式 解析
格式为:{"lng":113.534634,"lat":22.274308} 解析步骤如下: <?php $a=json_decode($goods_in ...
- word 操作教程
http://blog.163.com/haolongqin@126/blog/static/10999842220159993540527/ https://blog.csdn.net/ibigpi ...