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 24 Python
python实现监控linux性能及进程消耗性能的方法
Jul 25 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
python实现微信接口(itchat)详细介绍
Oct 23 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
Apr 18 Python
python字典改变value值方法总结
Jun 21 Python
Pycharm修改python路径过程图解
May 22 Python
如何在 Matplotlib 中更改绘图背景的实现
Nov 26 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
如何利用Python实现一个论文降重工具
Jul 09 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
收音机指标测试方法及仪器
2021/03/01 无线电
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
javascript奇异的arguments分析
2010/10/20 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
js中小数转换整数的方法
2014/01/26 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
2017/04/21 jQuery
jQuery遮罩层实例讲解
2017/05/11 jQuery
深入浅出es6模板字符串
2017/08/26 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
浅谈ng-zorro使用心得
2018/12/03 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
Python脚本实现代码行数统计代码分享
2015/03/10 Python
用Eclipse写python程序
2018/02/10 Python
python 寻找list中最大元素对应的索引方法
2018/06/28 Python
简单了解python关系(比较)运算符
2019/07/08 Python
python mysql断开重连的实现方法
2019/07/26 Python
python中的RSA加密与解密实例解析
2019/11/18 Python
Python 简单计算要求形状面积的实例
2020/01/18 Python
python logging设置level失败的解决方法
2020/02/19 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
浅谈Html5页面打开app的一些思考
2020/03/30 HTML / CSS
感恩教育活动总结
2014/05/05 职场文书
三好学生事迹材料
2014/12/24 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
2015年林业工作总结
2015/05/14 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android
关于MySQL临时表为什么可以重名的问题
2022/03/22 MySQL