Python TXT文本相关知识

1.    利用TXT进行矩阵存储,并根据需要时再读出

# 把矩阵save_weights存储到Save_weights.txt文件中去
savetxt('Save_weights.txt',save_weights,fmt="%.2f",delimiter=',') # 进行存储保存为两位小数,数据以","为间隔

# 从Save_weights.txt文件中读出矩阵
dataArr = np.loadtxt('Save_weights2.txt', delimiter=',')

2.    读取TXT文件

import operator
import numpy as np
fr = open("datingTestSet.txt")
print(fr)                               #  <_io.TextIOWrapper name='datingTestSet.txt' mode='r' encoding='cp936'>

arrayline = fr.readlines()
print(arrayline)                        #  ['40920\t8.326976\t0.953952\tlargeDoses\n', '14488\t7.153469\t1.673904\tsmallDoses\n',..]

lines = len(arrayline)
returnMat = np.zeros((lines, 3))
index = 0

for line in arrayline:
    lines = line.strip()               # X.strip() 移除 字符串 头尾指定的字符 (默认空格或换行符)或字符序列
    print('lines',lines)              # lines 40920	8.326976	0.953952	largeDoses

    ListFromList = lines.split('\t')  #  通过指定字符对字符串进行分割
    print('L',ListFromList)          #  L ['40920', '8.326976', '0.953952', 'largeDoses']

    print(ListFromList[0:3])         #  ['40920', '8.326976', '0.953952']

    returnMat[index, :] = ListFromList[0:3]
    print(returnMat[index, :])       #  [4.092000e+04 8.326976e+00 9.539520e-01]
    index += 1

print(returnMat)
"""
[[4.0920000e+04 8.3269760e+00 9.5395200e-01]
 [1.4488000e+04 7.1534690e+00 1.6739040e+00]
 [2.6052000e+04 1.4418710e+00 8.0512400e-01]
 ...
 [2.6575000e+04 1.0650102e+01 8.6662700e-01]
 [4.8111000e+04 9.1345280e+00 7.2804500e-01]
 [4.3757000e+04 7.8826010e+00 1.3324460e+00]]

"""

猜你喜欢

转载自blog.csdn.net/weixin_39781462/article/details/80945718