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抓取网页中的图片示例
Feb 28 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
django 解决manage.py migrate无效的问题
May 27 Python
python实现猜数字小游戏
Mar 24 Python
Python3中bytes类型转换为str类型
Sep 27 Python
python实现nao机器人身体躯干和腿部动作操作
Apr 29 Python
Django的models模型的具体使用
Jul 15 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
Python numpy多维数组实现原理详解
Mar 10 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
Jun 12 Python
pycharm永久激活超详细教程
Oct 29 Python
利用python查看数组中的所有元素是否相同
Jan 08 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写的serv-u的web申请账号的程序
2006/10/09 PHP
php记录日志的实现代码
2011/08/08 PHP
ThinkPHP查询语句与关联查询用法实例
2014/11/01 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
2015/03/12 PHP
php简单获取目录列表的方法
2015/03/24 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
javascript实现动态导入js与css等静态资源文件的方法
2015/07/25 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
JavaScript实现数组降维详解
2017/01/05 Javascript
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
jquery实现动态改变css样式的方法分析
2019/05/27 jQuery
使用flow来规范javascript的变量类型
2019/09/12 Javascript
python模拟鼠标拖动操作的方法
2015/03/11 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
python 合并多个excel中同名的sheet
2021/01/22 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
小学生自我鉴定
2013/10/12 职场文书
应届毕业生就业自荐信
2013/10/26 职场文书
实习单位接收函
2014/01/11 职场文书
学校安全工作制度
2014/01/19 职场文书
工作决心书范文
2014/03/11 职场文书
安全生产目标责任书
2014/04/14 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
医院保洁员岗位职责
2015/02/13 职场文书
会计专业求职信范文
2015/03/19 职场文书
项目合作意向书
2015/05/08 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
vue的项目如何打包上线
2022/04/13 Vue.js
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android