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

时间:2012-02-29 17:41:54

标签: python

我是python的新手,我编写了一个python脚本,它执行以下操作:

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

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

    但是发生的事情是脚本在sleep方法中提到的时间段内停止执行,并且没有读取txt文件。

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

    有人可以帮帮我吗?提前谢谢。

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

为了读取您刚刚写入的文件,只需要关闭文件(从而刷新缓冲区),您不需要使用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”语句

答案 2 :(得分:0)

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

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

看起来你正在做类似

的事情
while True:
     big_string = generate_big_string()
     open(filename, 'w').write(big_string)
     big_string = open(filename).read()

如果是这种情况,那么只需将字符串保留在内存中,写入和读取就没有意义了。 如果情况并非如此,那么您应该发布一些代码以获得更好的帮助。