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实现颜色空间转换程序(Tkinter)
Dec 31 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
Python3中的json模块使用详解
May 05 Python
python使用matplotlib模块绘制多条折线图、散点图
Apr 26 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
Python tkinter实现图片标注功能(完整代码)
Dec 08 Python
Python numpy多维数组实现原理详解
Mar 10 Python
Python学习之os模块及用法
Jun 03 Python
Python3如何使用tabulate打印数据
Sep 25 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
python 获取域名到期时间的方法步骤
Feb 10 Python
python使用torch随机初始化参数
Mar 22 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
8个PHP程序员常用的功能汇总
2014/12/18 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
jQuery实现级联下拉框实战(5)
2017/02/08 Javascript
JavaScript实现拖拽效果
2020/03/16 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
2020/09/09 Javascript
python实现查找excel里某一列重复数据并且剔除后打印的方法
2015/05/26 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
详解python中的 is 操作符
2017/12/26 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
详解CSS3+JS完美实现放大镜模式
2020/12/03 HTML / CSS
瑜伽服装品牌:露露柠檬(lululemon athletica)
2017/06/04 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
初中生学习生活的自我评价
2013/11/20 职场文书
办理暂住证介绍信
2014/01/11 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
商业门面租房协议书
2014/11/25 职场文书
邀请函的格式
2015/01/30 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
工作简历的自我评价
2019/05/16 职场文书
MySQL磁盘碎片整理实例演示
2022/04/03 MySQL