python

超轻量级php框架startmvc

python实现txt文件格式转换为arff格式

更新时间:2020-06-04 17:30:02 作者:startmvc
本文实例为大家分享了python实现txt文件格式转换为arff格式的具体代码,供大家参考,具体

本文实例为大家分享了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 txt arff