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(' ').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)
原文地址:https://www.cnblogs.com/fqfanqi/p/8413511.html