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 相关文章推荐
windows系统中python使用rar命令压缩多个文件夹示例
May 06 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
python调用fortran模块
Apr 08 Python
Python 文件处理注意事项总结
Apr 10 Python
浅析Git版本控制器使用
Dec 10 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
tensorflow学习教程之文本分类详析
Aug 07 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
Apr 03 Python
基于python计算并显示日间、星期客流高峰
May 07 Python
python开根号实例讲解
Aug 30 Python
在pycharm中无法import所安装的库解决方案
May 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
2011/07/18 PHP
php中http_build_query 的一个问题
2012/03/25 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
浅析Yii2集成富文本编辑器redactor实例教程
2016/04/25 PHP
php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)
2016/07/18 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
php使用mysqli和pdo扩展,测试对比连接mysql数据库的效率完整示例
2019/05/09 PHP
js如何获取object类型里的键值
2014/02/18 Javascript
自己封装的常用javascript函数分享
2015/01/07 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
2016/04/12 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
利用express启动一个server服务的方法
2017/09/17 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
Node 升级到最新稳定版的方法分享
2018/05/17 Javascript
Python中字典的基本知识初步介绍
2015/05/21 Python
Python过滤列表用法实例分析
2016/04/29 Python
CentOS 6.5下安装Python 3.5.2(与Python2并存)
2017/06/05 Python
python绘制无向图度分布曲线示例
2019/11/22 Python
波兰香水和化妆品购物网站:Notino.pl
2017/11/07 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
大学生个人事迹材料
2014/01/21 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
租房安全协议书
2014/08/20 职场文书
公司的门卫岗位职责
2014/09/09 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
公司出纳岗位职责
2015/03/31 职场文书
让子弹飞观后感
2015/06/11 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书