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中定义结构体的方法
Mar 04 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
关于Python 3中print函数的换行详解
Aug 08 Python
python+matplotlib绘制旋转椭圆实例代码
Jan 12 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Django项目中用JS实现加载子页面并传值的方法
May 28 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
python获取url的返回信息方法
Dec 17 Python
python实现机器人卡牌
Oct 06 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
Python中无限循环需要什么条件
May 27 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
PHP学习 运算符与运算符优先级
2008/06/15 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
朋友网关于QQ相关的PHP代码(研究QQ的绝佳资料)
2015/01/26 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
PHP实现递归的三种方法
2020/07/04 PHP
JXTree对象,读取外部xml文件数据,生成树的函数
2007/04/02 Javascript
日历查询的算法 如何计算某一天是星期几
2012/12/12 Javascript
jquery插件实现鼠标经过图片右侧显示大图的效果(类似淘宝)
2013/02/04 Javascript
js跳转页面方法实现汇总
2014/02/11 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
2016/06/27 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
基于BootStrap实现简洁注册界面
2017/07/20 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
Python中的is和id用法分析
2015/01/26 Python
Python实现两款计算器功能示例
2017/12/19 Python
python中的变量如何开辟内存
2018/06/26 Python
python中单下划线_的常见用法总结
2018/07/10 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
贝嫂喜欢的婴儿品牌,个性化的婴儿礼物:My 1st Years
2017/11/19 全球购物
翻译学院毕业生自荐书
2014/02/02 职场文书
节约电力资源的建议书
2014/03/12 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
先进教师事迹材料
2014/12/16 职场文书
穆斯林的葬礼读书笔记
2015/06/26 职场文书
欠条样本
2015/07/03 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android
Oracle用户管理及赋权
2022/04/24 Oracle
MySQL 计算连续登录天数
2022/05/11 MySQL
Spring Cloud OpenFeign模版化客户端
2022/06/25 Java/Android