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实现的重启关机程序实例
Aug 21 Python
python 远程统计文件代码分享
May 14 Python
python字符串的常用操作方法小结
May 21 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
Python多进程multiprocessing.Pool类详解
Apr 27 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
python3利用Socket实现通信的方法示例
May 06 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python3安装crypto出错及解决方法
Jul 30 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 Python
Django路由层URLconf作用及原理解析
Sep 24 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 字符转义 注意事项
2009/05/27 PHP
ThinkPHP模板IF标签用法详解
2014/07/01 PHP
ThinkPHP中自定义目录结构的设置方法
2014/08/15 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
PDO::setAttribute讲解
2019/01/29 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
javascript 年月日联动实现核心代码
2009/12/21 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
基于javascript实现泡泡大冒险网页版小游戏
2016/03/23 Javascript
js事件源window.event.srcElement兼容性写法(详解)
2016/11/25 Javascript
jQuery实现拖动剪裁图片作为头像
2016/12/28 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
jQuery Position方法使用和兼容性
2017/08/23 jQuery
node thread.sleep实现示例
2018/06/20 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
[43:32]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
使用Python设置tmpfs来加速项目的教程
2015/04/17 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
解决django后台样式丢失,css资源加载失败的问题
2019/06/11 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Python 中由 yield 实现异步操作
2020/05/04 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
Python unittest生成测试报告过程解析
2020/09/08 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
销售员求职个人的自我评价
2014/02/19 职场文书
毕业班联欢会主持词
2014/03/27 职场文书
大学教师个人总结
2015/02/10 职场文书
保险公司增员口号
2015/12/25 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书