python实现将txt文件格式转换为arff格式
2014-12-15 01:53
1266 查看
将文件读取出来的时候默认都是字符型的,所以有转换出来有点问题,但是还是可以用的。
文件要求第一行是你对应的属性名,之后是数字。
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)
文件要求第一行是你对应的属性名,之后是数字。
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格式
- Python实现读取txt文件并转换为excel的方法示例
- jacob 实现Office Word文件格式转换 docTotxt,docTopdf,docxTodoc,pdfTotxt ...
- Python实现把utf-8格式的文件转换成gbk格式的文件
- Python实现把json格式转换成文本或sql文件
- Python实现把utf-8格式的文件转换成gbk格式的文件
- jacob 实现Office Word文件格式转换 docTotxt,docTopdf,docxTodoc,pdfTotxt ...
- Python实现将HTML转换成doc格式文件的方法示例
- 用Python实现CSV格式文件转换为HTML文件[Python3程序开发指南实现]
- Python实现把json格式转换成文本或sql文件
- Python实现迅雷看看xv格式转换为flv格式
- python处理文本文件实现生成指定格式文件的方法
- lua文件操作(3)----txt文件转换成lua文件的table格式
- mat文件与txt文件的相互转换(特别的,mat转txt,数据格式设置)
- ruby + nokogiri实现将天涯易读全帖转换成txt文件的功能
- jacob 实现Office Word文件格式转换
- [python]将一般格式的图书目录转换成pdf文件目录
- 识别常见编码格式文件并转换成UTF-8编码 的java实现 源码
- grails框架中读取txt文件内容将内容转换为json格式,出现异常Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at character 1 of [...]
- Oracle中的Spool缓冲池技术可以实现Oracle导出txt格式文件