逐行循环而不是覆盖时写入文件

时间:2020-08-08 19:15:06

标签: python datetime time file-io

我正在尝试使用以下代码每秒在文件中写入一些内容:

from datetime import datetime
import schedule
import time

def test():
    f = open(r"C:\logs.txt","w")
    time = datetime.now()
    f.write("test " + str(time))
    f.write("\n")

schedule.every().second.do(test)

while True:
    schedule.run_pending()
    time.sleep(1)
        

但是当我查看logs.txt文件时,结果是这样的:

test 2020-08-08 21:10:52.605432

代替(我想做的):

test 2020-08-08 21:10:52.605432
test 2020-08-08 21:10:53.605432
test 2020-08-08 21:10:54.605432
...

代码似乎覆盖了第一行,而不是每次有新的第二行时都逐行写入。 你可以帮帮我吗 ? 谢谢

更新的代码:

from datetime import datetime
import schedule
import time

def test():
    f = open(r"C:\logs.txt","a")
    time = datetime.now()
    f.write("test " + str(time))
    f.write("\n")
    f.close()
    

while True:

    schedule.every().second.do(test) 
    schedule.run_pending()
    time.sleep(1)

1 个答案:

答案 0 :(得分:3)

以附加模式打开文件以避免覆盖: import Button from "@material-ui/core/Button"; const RegularButton = React.forwardRef((props, ref) => { return ( <Button {...rest} ref={ref} className={btnClasses}> {children} </Button> ); } 。此外,建议您在完成写入后使用open(r"C:\logs.txt","a")语句自动关闭文件。

示例代码:

with