介绍python的一种较为通用的读取文件并进行格式化的方法。
第一种文件格式:
一行数据是一个特征向量,最后一项是标签,表示类别。数据之间用空格分隔。目的是输入这样的文件路径,得到它格式化形成的特征向量和标签向量。
代码
def fileToNumpy(filename):
file = open(filename)
file_lines = file.readlines()
numberOfLines = len(file_lines)
dataArray = np.zeros((numberOfLines, 3))
labels = []
index = 0
for line in file_lines:
line = line.strip() # 参数为空时,默认删除开头、结尾处空白符(包括'\n', '\r', '\t', ' ')
formLine = line.split('\t')
dataArray[index,:] = formLine[0:3]
labels.append((formLine[-1]))
index += 1
return dataArray, labels
filename = "datingTestSet.txt"
dataArray, labels = fileToNumpy(filename)
第二种文件格式类似,但是用逗号分隔
这种文件是csv格式文件,把它当作普通文件来处理。
代码
def fileToNumpy_2(filename):
file = open(filename)
lines = file.readlines()
length = len(lines)
data = np.zeros((length, 3))
labels = []
index = 0
for line in lines:
line = line.strip()
one = line.split(',')
data[index,:] = one[0:-1]
labels.append(one[-1])
index += 1
return data, labels
filename = "testData.txt"
data, labels = fileToNumpy_2(filename)
print(data)
print(labels)