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脚本生成Android SALT扰码的方法
Sep 18 Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
Python中使用urllib2模块编写爬虫的简单上手示例
Jan 20 Python
python测试mysql写入性能完整实例
Jan 18 Python
浅谈python可视化包Bokeh
Feb 07 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 Python
Python3爬虫全国地址信息
Jan 05 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
python实现一次性封装多条sql语句(begin end)
Jun 06 Python
python中id函数运行方式
Jul 03 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
PL-880隐藏功能
2021/03/01 无线电
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
PHP文件读写操作相关函数总结
2014/11/18 PHP
php常见的魔术方法详解
2014/12/25 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
php数组和链表的区别总结
2019/09/20 PHP
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
js querySelector和getElementById通过id获取元素的区别
2012/04/20 Javascript
javascript抖动元素的小例子
2013/10/28 Javascript
jquery ajax实现下拉框三级无刷新联动,且保存保持选中值状态
2013/10/29 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
javascript中几个容易混淆的概念总结
2015/04/14 Javascript
jQuery调用WebMethod(PageMethod) NET2.0的方法
2016/04/15 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
JavaScript数据结构与算法之队列原理与用法实例详解
2017/11/22 Javascript
Vue的elementUI实现自定义主题方法
2018/02/23 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
[01:02:30]Mineski vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
2018/10/26 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
python里dict变成list实例方法
2019/06/26 Python
python实现大学人员管理系统
2019/10/25 Python
Python3搭建http服务器的实现代码
2020/02/11 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
2020/03/19 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
iHerb香港:维生素、补充剂和天然保健品
2017/08/01 全球购物
精致的手工皮鞋:Shoe Embassy
2019/11/08 全球购物
支教自我鉴定
2014/01/18 职场文书
竞聘书格式及范文
2014/03/31 职场文书
《鲸》教学反思
2016/02/23 职场文书