1、python 将print输出的内容保存到txt文件中
import sys
import os
class Logger(object):
def __init__(self, filename="Default.log"):
self.terminal = sys.stdout
self.log = open(filename, "a")
def write(self, message):
self.terminal.write(message)
self.log.write(message)
def flush(self):
pass
path = os.path.abspath(os.path.dirname(__file__))
type = sys.getfilesystemencoding()
sys.stdout = Logger('a.txt')
print(path)
print(os.path.dirname(__file__))
print('------------------')
2、txt 读写、追加、覆盖
1) 新增覆盖
f = "lucky.txt"
a =8
with open(f,"w") as file: #”w"代表着每次运行都覆盖内容
for i in range(a):
file.write(str(i) + "d" + " "+"\n")
a +=1
2) 追加
f = "lucky.txt"
a =8
with open(f,"a") as file: #只需要将之前的”w"改为“a"即可,代表追加内容
for i in range(a):
file.write(str(i) + "d" + " "+"\n")
a +=1
思路
#1、 创建以step+学习率命名的txt文件
#2、 在Print 处、打开该文件
如何根据TXT 中的文件绘制图
txt 格式如下:
## 从.txt文件中读取数据
def loadData(flieName):
inFile = open(flieName, 'r')#以只读方式打开某fileName文件
#定义两个空list,用来存放文件中的数据
X = []
y = []
for line in inFile:
trainingSet = line.split(',') #对于每一行,按','把数据分开,这里是分成两部分
X.append(trainingSet[0]) #第一部分,即文件中的第一列数据逐一添加到list X 中
y.append(trainingSet[1]) #第二部分,即文件中的第二列数据逐一添加到list y 中
return (X, y) # X,y组成一个元组,这样可以通过函数一次性返回
## 绘制该文件中的数据
## 需要引入pylab库,里面用到的函数和MATLAB里的非常类似
def plotData(X, y):
length = len(y)
pylab.figure(1)
pylab.plot(X, y, 'rx')
pylab.xlabel('Population of City in 10,000s')
pylab.ylabel('Profit in $10,000s')
pylab.show()#让绘制的图像在屏幕上显示出来
(X,y) = loadData('ex1data1.txt')
plotData(X,y)
评论(0)
您还未登录,请登录后发表或查看评论