最近文件读写的工作比较多,每一次读文件都会写单独的函数来适应文件格式,所以写了一个类对文件进行操作。
(用pandas.read_csv读取文件更好用)
import os
class DealData:
# 数据加载函数
def load(self, filename):
data = []
file = open(filename, 'r')
for line in file.readlines():
line = line.strip('\n') # 除去换行
line = line.split(' ') # 文件以“ ”分隔
if "" in line: # 解决每行结尾有空格的问题
line.remove("")
data.append(line)
file.close()
return data
# 折半查找 # array是一个二维数组,函数实现的功能是按照array的第lie列折半查找
def search(self, array, lie, target):
low = 0
high = len(array) - 1
while array[low][lie] <= array[high][lie]:
mid = int((low + high) / 2)
midval = array[mid][lie]
if midval < target:
low = mid + 1
elif midval > target:
high = mid - 1
if high < 0 or low >= len(array):
break
return high
# 将数据保存到文件
def save(self, data, filename):
file = open(filename, 'w')
for i in range(0, len(data), 1):
for k in range(0, len(data[i]), 1):
file.write(str(data[i][k]))
file.write(" ")
file.write("\n")
file.close()
可以将Dealdata类单独创建一个python文件,命名为Dealdata,调用方法如下:
from DealData import DealData
deal = DealData()
totaldata = deal.load("E:\low_data.txt")
之前先引用类:from Dealdata import Dealdata, 其中第一个Dealdata为被调用的python文件名, 第二个Dealdata为被调用的类名。