python 实现以空格分隔的文件读写及二维数组按列折半查找_轻轻的她的博客-程序员宝宝

技术标签: 按列查找  python文件读取  数据处理  折半查找  空格分隔  

最近文件读写的工作比较多,每一次读文件都会写单独的函数来适应文件格式,所以写了一个类对文件进行操作。

(用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为被调用的类名。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dianqijiaojianshuo/article/details/80936148

智能推荐

Uboot7之shell语法_wangdapao12138的博客-程序员宝宝

1.shell脚本1.1使用shell脚本的原因    ---功能强大    ---节约时间 1.2 shell脚本基本元素    #!/bin/bash1.3注意初学者易犯错误:1) 第一行#不是注释 其他#都是注释;2) echo $mytextA    写错现象;3) #!/bin/bash        写错现象;    4) 脚本如果没有执行权限 chmod 777 hello.sh...

(七)、Java异常类型及处理_weixin_30786617的博客-程序员宝宝

一、异常实现及分类(一)异常类的结构图上图可以简单展示一下异常类实现结构图,当然上图不是所有的异常,用户自己也可以自定义异常实现。1.所有的异常都是从Throwable继承而来的,是所有异常的共同祖先。2.Throwable有两个子类,Error和Exception。其中Error是错误,对于所有的编译时期的错误以及系统错误都是通过Error抛出的。这些错误...

android 自定义view中onMeasure()理解_AAA123222的博客-程序员宝宝

今天学习android自定义组件:docs/guide/topics/ui/custom-components.html其中有两个对布局界面影响很的方法,onDraw(),和onMeasure().onDraw()比较好理解.onMeasure()就比较难理解一些,也更复杂些 ,引用文档中的说法就是:onMeasure() is a little more invo

PX30 datasheet 下载链接_qq3406930075的博客-程序员宝宝

全国首家瑞芯微px30开发板与核心板强势推出,接受项目定制 PX30开发板是基于瑞芯微PX30的一款高端开发板,它由深圳市九鼎创展科技有限公司自主研发,生产并销售。它是瑞芯微首款针对行业应用领域的高性价比四核A35应用处理器,生命周期长达10年,而且芯片成本还不到RK3288的一半,可以满足绝大多数行业领域的需求。资料下载链接:http://x.9tripod.com/w...

CSS--例子:鲜花销售网站_罗俊-Everns的博客-程序员宝宝

排版分析CSS代码HTML代码效果展示主界面效果end排版分析CSS代码body{ background-color:#ffd8d9; margin:1px 0px 0px 0px; padding:0px; text-align:center; font-size:12px; font-family:A...

随便推点

webservice 入门(jdk简单案例)_艾琉的博客-程序员宝宝

1. WebService简介Web Service——也叫XML Web Service WebService,是一种跨编程语言和跨操作系统平台的远程调用技术。各个应用程序之间的交流就需要Web Service来作为相互交流的桥梁。 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端...

C++ int long long double 等数据范围!_Southan97的博客-程序员宝宝_c++ int long 范围

由于机型的不同,确实存在int到底是几个字节的问题。具体见下表:现在给一种姿势,看看到底其数据范围是多少,在ACM竞赛中,经常会遇到数据溢出的问题,这里我们来看看int, long long的最大值是多少位的即10的多少次方,并以此我们大概能估计应该给变量定义什么样的类型或者怎样对算式进行恒等变形(运算顺序等)而有效预防溢出问题。

WPF ListView模板的使用方法_Bingo_BIG的博客-程序员宝宝

&lt;ListView x:Name="listViewLeve2" HorizontalAlignment="Left" Height="730" Margin="6,28,0,0" VerticalAlignment="Top" Width="489" Foreground="White" Background="#00000000" ScrollViewer.HorizontalSc...

8数码问题的状态空间是两张独立的连通图_Nightmare004的博客-程序员宝宝

人工智能作业。将空白的格子记为@定义,状态的序列:从左到右,从上到下排列形成的序列,定义,状态的逆序数:状态的序列去除@后的逆序数定义,序列的逆序数:序列去除@后的逆序数定义,操作1:在序列中@与交换相邻的数字的位置操作1等价与在不改变数字的相对顺序的情况下任意移动定义,操作2:在序列中@与左右相隔2个数字的数字交换位置引理1:操作1和操作2不改变序列的逆序数的奇偶...

linux ubuntu 安装mongo教程(实践步骤)_nihaozz123的博客-程序员宝宝

最近需要在linux上安装mongdb由于之前没安装过。在网上搜索到很多安装方法,但有的按照步骤操作是不行的。前后共花费了半天时间找到一个可行的步骤,分享给大家,少走弯路。如果安装过程遇到技术问题 私信linux是ubuntu版本1、文件解压tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.6.62、将解压后的文件夹移动到/usr/local/的mongodb目录下(安装目录为/usr/local/mongodb 可自定义)mv mongodb-linux-

Contextual Action bar(3) 两个示例_banyinlve3147的博客-程序员宝宝

一.通过activity启动Context Action Bar1.主javapublic class ActivityActionModeFrgmt extends Fragment implements OnCheckedChangeListener, ActionMode.Callback { private ActionMode mActi...