如何让python脚本等待一段时间?

如何让python脚本等待一段时间?,python,Python,我对python比较陌生,我编写了一个python脚本,它执行以下操作: 它执行一些操作并将详细信息写入文本文件(例如a.txt) 一旦写入txt文件(a.file),将读取同一文件以执行某些操作 我面临的问题是,一旦文件(a.txt)被写入并被读取,内容就不会被读取 我在写入txt文件(a.txt)后使用time.sleep(),然后继续读取该文件 但实际情况是,脚本在sleep方法中提到的时间段内停止执行,而txt文件不被读取 我需要一个场景,相同的脚本必须写入文本文件并立即读取 有人能帮我

我对python比较陌生,我编写了一个python脚本,它执行以下操作:

  • 它执行一些操作并将详细信息写入文本文件(例如a.txt)
  • 一旦写入txt文件(a.file),将读取同一文件以执行某些操作
  • 我面临的问题是,一旦文件(a.txt)被写入并被读取,内容就不会被读取

    我在写入txt文件(a.txt)后使用
    time.sleep()
    ,然后继续读取该文件

    但实际情况是,脚本在sleep方法中提到的时间段内停止执行,而txt文件不被读取


    我需要一个场景,相同的脚本必须写入文本文件并立即读取


    有人能帮我吗?提前感谢。

    为了读取您刚刚编写的文件,只需关闭文件(从而刷新缓冲区),例如,您不需要使用sleep方法进行阻塞

    filepath="myfilepath"
    with open(filepath,'w') as f:
        f.write("hello")
    
    with open(filepath,'r') as f:
        print(f.read())
    
    在这种情况下,“with”关键字在文件的块关闭时自动调用文件的f.close()。“with”关键字在早期版本的python中不起作用。上述内容相当于明确地这样做:

    filepath="myfilepath"
    f = open(filepath,'w')
    f.write("hello")
    f.close()
    f = open(filepath,'r')
    print(f.read())
    f.close()
    
    close函数刷新缓冲区

    根据您的使用情况,最好使用其他类型的数据结构来存储临时值,如简单变量。享受学习python的乐趣


    编辑:python 2.5中引入了“with”语句,例如,为了读取刚刚编写的文件,应该只需要关闭文件(从而刷新缓冲区),不需要使用sleep方法进行阻塞

    filepath="myfilepath"
    with open(filepath,'w') as f:
        f.write("hello")
    
    with open(filepath,'r') as f:
        print(f.read())
    
    在这种情况下,“with”关键字在文件的块关闭时自动调用文件的f.close()。“with”关键字在早期版本的python中不起作用。上述内容相当于明确地这样做:

    filepath="myfilepath"
    f = open(filepath,'w')
    f.write("hello")
    f.close()
    f = open(filepath,'r')
    print(f.read())
    f.close()
    
    close函数刷新缓冲区

    根据您的使用情况,最好使用其他类型的数据结构来存储临时值,如简单变量。享受学习python的乐趣


    编辑:python 2.5中引入了“with”语句。如果您写入文件,“当前位置”位于写入后的文件末尾。要读取同一文件,必须使用方法转到文件的开头

    foo = open("bla.txt", "w+")
    foo.write("your text here")
    foo.seek(0)
    lines = foo.readlines()
    

    如果写入文件,“当前位置”位于写入后的文件末尾。要读取同一文件,必须使用方法转到文件的开头

    foo = open("bla.txt", "w+")
    foo.write("your text here")
    foo.seek(0)
    lines = foo.readlines()
    

    我怀疑这种方法在这种情况下不是最好的

    为什么您需要在完全相同的文件上按顺序写入和读取

    看起来你在做类似的事情

    while True:
         big_string = generate_big_string()
         open(filename, 'w').write(big_string)
         big_string = open(filename).read()
    
    如果是这样的话,那么就把字符串保存在内存中,一直写和读是没有意义的。
    如果不是这样,那么您可能应该发布一些代码以获得更好的帮助。

    我怀疑这种方法在这种情况下不是最好的

    为什么您需要在完全相同的文件上按顺序写入和读取

    看起来你在做类似的事情

    while True:
         big_string = generate_big_string()
         open(filename, 'w').write(big_string)
         big_string = open(filename).read()
    
    如果是这样的话,那么就把字符串保存在内存中,一直写和读是没有意义的。
    如果不是这样,那么您可能应该发布一些代码以获得更好的帮助。

    请添加您的代码。另外,您是否在写入缓冲区后刷新了缓冲区?“我需要一个场景,其中相同的脚本必须写入文本文件,并立即读取相同的内容。”为什么?这似乎没有任何意义。@DorShemer:关闭文件时缓冲区会自动刷新。可能是由于忘记了这一点导致了错误。如果写入后文件仍处于打开状态,则位置位于字符串的末尾-请尝试添加代码。此外,写入后是否刷新缓冲区?“我需要一个场景,其中相同的脚本必须写入文本文件并立即读取相同的内容。”为什么?这似乎没有任何意义。@DorShemer:关闭文件时缓冲区会自动刷新。可能是由于忘记了这一点导致了错误。如果写入后文件仍处于打开状态,则位置位于字符串的末尾-请尝试确保使用“w+”打开文件(用于更新),否则,简单地执行“w”将不允许您从文件中读取内容。升级投票是因为到目前为止,这是唯一一个不会打开文件两次的答案。请确保使用“w+”(用于更新)打开文件,否则简单地执行“w”将不允许您从文件中读取内容。升级投票是因为到目前为止,这是唯一一个不会打开文件两次的答案。