python实现txt文件格式转换为arff格式


Posted in Python onMay 31, 2018

本文实例为大家分享了python实现txt文件格式转换为arff格式的具体代码,供大家参考,具体内容如下

将文件读取出来的时候默认都是字符型的,所以有转换出来有点问题,但是还是可以用的。

文件要求第一行是你对应的属性名,之后是数字。

import sys 
import re 
 
relationname = "" 
filename = "" 
 
if (len(sys.argv)<2): 
  print("Usage:\npython arff.py MyRelationName filename.txt") 
else: 
  relationname = sys.argv[1] 
  filename = sys.argv[2] 
 
 
class Arff: 
  def __init__(self, r, f): 
    self.relationname = r if r is not "" else "MachineLearning" 
    f = f if f is not "" else "MMG_data.txt" 
    self.file1 = open(f, 'r') 
    self.data = [] 
    self.names = [] 
    self.parseData() 
    self.writeToFile() 
 
  def parseData(self): 
    firstLine = True 
    for line in self.file1.readlines(): 
      if not firstLine: 
        try: 
          line = line.replace("\n", "") 
          words = line.split(" ") 
        except ValueError: 
          print("cant parse file!!") 
        self.data.append(words) 
      else: 
        firstLine = False 
        line = line.replace("\n", "") 
        words = line.split(" ") 
        self.names = words 
 
  def getType(self, value): 
    v = "" 
    if(type(value) == type(1)): 
      v = "numeric" 
    elif(type(value) == type(1.0)): 
      v = "numeric" 
    elif(re.match("[0-9]{4}\-[0-9]{2}\-[0-9]{2}\s[0-9]{2}\:[0-9]{2}\:[0-9]{2}", value)): 
      v = "date " + "yyyy-MM-dd HH:mm:ss" 
    elif(type(value) == type("string")): 
      v = "string" 
    elif(v == ""): 
      print("Data type "+value+" not supported yet.") 
    return v 
 
  def writeToFile(self): 
    values = self.data[0] 
    file2 = open("Dexhunter_test_result.arff", 'w+' ) 
 
    self.relationname+="\n" 
 
    relationString = '@RELATION ' + self.relationname 
    file2.write(''+relationString+'') 
 
    for i in range(len(self.names)): 
      str2 = "@ATTRIBUTE " + self.names[i] + " " + self.getType( values[i] ) + "\n" 
      file2.write(''+str2+'') 
    file2.write('''''@DATA\n''') 
 
    for line in self.data: 
      try: 
        file2.write(",".join(line)+"\n") 
      except UnicodeEncodeError: 
          print("cant write Data to file!!") 
 
Arff(relationname, filename)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
python抓取文件夹的所有文件
Feb 27 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
详解Python 正则表达式模块
Nov 05 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
解决pycharm每次新建项目都要重新安装一些第三方库的问题
Jan 17 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 Python
Python迭代器Iterable判断方法解析
Mar 16 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
从django的中间件直接返回请求的方法
May 30 #Python
Django项目中包含多个应用时对url的配置方法
May 30 #Python
django 多数据库配置教程
May 30 #Python
python实现超市扫码仪计费
May 30 #Python
pycharm 将django中多个app放到同个文件夹apps的处理方法
May 30 #Python
多个应用共存的Django配置方法
May 30 #Python
python实现支付宝当面付(扫码支付)功能
May 30 #Python
You might like
mysql 字段类型说明
2007/04/27 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
PHP生成(支持多模板)二维码海报代码
2018/04/30 PHP
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
Javascript的表单验证-提交表单
2016/03/18 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
详解用Webpack与Babel配置ES6开发环境
2019/03/12 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
简单了解JavaScript中常见的反模式
2019/06/21 Javascript
解决layui动态加载复选框无法选中的问题
2019/09/20 Javascript
原生javascript单例模式的应用实例分析
2020/02/23 Javascript
Python中操作文件之write()方法的使用教程
2015/05/25 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python用列表生成式写嵌套循环的方法
2018/11/08 Python
python3利用Axes3D库画3D模型图
2020/03/25 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
Pygame框架实现飞机大战
2020/08/07 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
墨西哥网上超市:Superama
2018/07/10 全球购物
审核会计岗位职责
2013/11/08 职场文书
国际贸易个人求职信范文
2014/01/04 职场文书
交通事故检查书范文
2014/01/30 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
信息与计算科学专业推荐信
2014/02/23 职场文书
员工合理化建议书
2014/05/19 职场文书
党委书记个人对照检查材料
2014/09/15 职场文书
2015年中职班主任工作总结
2015/05/25 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL