Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python 3中将字符串和日期写入文本文件_Python_Python 3.x - Fatal编程技术网

在Python 3中将字符串和日期写入文本文件

在Python 3中将字符串和日期写入文本文件,python,python-3.x,Python,Python 3.x,试图找出如何计算出一个猜谜游戏的分数加上日期和时间到一个文本文件,每次都有一个新行,保留旧文本 这就是我到目前为止得到的 print('You scored %s.' % scr) file = open("scr.txt", mode='w') file.write('Printed string %s.\n' % scr) 顺便说一下,这不起作用-它显示对文本文件进行了编辑,但文本文件中没有显示任何内容-所以我做错了什么 我希望文本文件读取“日期和时间记录的打印字符串”。以及在每次写作时都

试图找出如何计算出一个猜谜游戏的分数加上日期和时间到一个文本文件,每次都有一个新行,保留旧文本

这就是我到目前为止得到的

print('You scored %s.' % scr)
file = open("scr.txt", mode='w')
file.write('Printed string %s.\n' % scr)
顺便说一下,这不起作用-它显示对文本文件进行了编辑,但文本文件中没有显示任何内容-所以我做错了什么

我希望文本文件读取“日期和时间记录的打印字符串”。以及在每次写作时都想要一行新词,并保留以前写过的内容

提前谢谢。任何帮助都将不胜感激。

这就是你想要的吗

from datetime import datetime
with open('scr.txt', 'a') as file:
    file.write('Printed string %s. Recorded at: %s\n' % scr %datetime.now())
演示:


我认为您缺少的是
刷新
关闭
。Python(和许多其他语言一样)使用缓冲区来管理数据写入和批写入,以提高效率。试着在之后添加这个,看看你是否真的在你的文件中得到了一些输出

file.close()
此外,要在文件中保留以前的数据,您需要以追加模式打开

file = open("scr.txt", "a")
这样,写入操作将附加到文件末尾,而不是截断和重写您的分数。

您不会在任何地方调用。除非您这样做(或
file.flush()
),否则无法保证会向该文件写入任何内容;它可能就在某个缓冲区里

更好的方法是使用
with
语句,这样就不必记得调用
close

本教程中的间接解释了这一点。详细解释它的参考文档分散在文档中,新手可能很难理解


此外,在
'w'
模式下打开文件时,每次都会替换整个文件。您希望附加到现有文件,这意味着您需要
'a'
模式。有关详细信息,请参见教程部分或文档


添加新行时,您已经获得了正确的结果,格式字符串为
\n


最后,您可以使用模块获取日期和时间。如果您不介意默认的ISO日期格式,您可以将
datetime
对象格式化为字符串


总而言之:

import datetime

with open("scr.txt", mode='a') as file:
    file.write('Printed string %s recorded at %s.\n' % 
               (scr, datetime.datetime.now()))

你是怎么知道日期和时间的?我还没有-我还在努力弄清楚。我正在尝试发布一个猜谜游戏的输出,以及发布的时间和日期。从这里可以很好地工作-非常感谢您的帮助。非常高兴。@aIKid:这不是他的全部代码,但这是他所问部分的全部代码。
import datetime

with open("scr.txt", mode='a') as file:
    file.write('Printed string %s recorded at %s.\n' % 
               (scr, datetime.datetime.now()))