为了账号安全,请及时绑定邮箱和手机立即绑定

将我的代码中的结果打印到 .txt 不再起作用

将我的代码中的结果打印到 .txt 不再起作用

MMTTMM 2022-04-27 13:23:36
我正在尝试将我的算法(分数)的一些结果打印到 .txt 文件中,以获取该数据以供进一步分析。在这里,算法将创建文件,然后打开它以记下数字。然后我又想关闭它。我的问题是,我什至找不到文件。如果我自己创建一个,并且只尝试写数字,那也行不通。这是为了分析机器人的强化学习。这些分数象征着 Q 值,对进一步分析很重要。分数在这里是一个随机数。if __name__ == '__main__':    open('try.txt', 'w+').close()    for e in range(agent.load_episode + 1, EPISODES):        ...        for t in range(agent.episode_step):           ...            if done:               ...                saveFile = open('try.txt','w')                saveFile.write(str(score))                saveFile.close()从第一部分开始,我尝试创建一个名为 try.txt 的新文件(我只创建一次文件)。他们之后,我打开文件,写一些东西然后再次关闭它。计算下一个 Q 值时,再次打开文件。
查看完整描述

2 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

该文件是否应该仅包含最后计算的值、单次运行的所有值(可能每个都在新行中),或者甚至包含单独运行的值?然而,这个,有点修改,剪断可能是你正在寻找的:


if __name__ == '__main__':

    with open('try.txt', 'w') as saveFile:  # change to 'a' if you want the results to be stored between runs

        for e in range(agent.load_episode + 1, EPISODES):

            ...

            for t in range(agent.episode_step):

                ...

                if done:

                    ...

                    # saveFile.truncate()  uncommenting this means that the file only stores the latest value

                    saveFile.write(str(score) + '\n')  # write each result to new line

                    saveFile.flush()  # this line makes the results accessible from file as soon as they are calculated

在 python中,with是打开文件的首选方法,因为它会在适当的时候关闭它。当以 'w' 模式打开文件时,文件内的插入符号被放置在文件的开头,如果文件中有任何数据,它将被删除。


'a' 模式附加到文件。你可能想看看这个。


现在我相信您想要不断地打开和关闭文件,以便在迭代完成后立即访问数据。这就是 saveFile.flush() 的用途。如果这对您有帮助,请告诉我!


为了更好地控制文件的创建位置,请使用 os 模块:


import os

directory = os.path.dirname(os.path.abspath(__file__))

file_path = os.path.join(directory, 'try.txt')

# print(file_path)

with open(file_path, 'w') as saveFile:



查看完整回答
反对 回复 2022-04-27
?
呼如林

TA贡献1798条经验 获得超3个赞

尝试更改saveFile = open('try.txt', 'w')with open('try.txt', 'a+') as saveFile:



查看完整回答
反对 回复 2022-04-27
  • 2 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号