在一个文件中轮流浏览多个文本文件的内容?

时间:2019-05-04 14:37:06

标签: python

我有2个文本文件,由于有了外部程序,这些文件将自动更新。这两个文本文件将包含一个名称。我想拥有第三个文本文件,该文件在旋转时显示其他文本文件的内容(一次显示一个文本文件-然后它会自动读取第二个文件并替换当前文本-然后返回第一个,等等)。我不是程序员,但如果能为我提供任何帮助,我将不胜感激。

我起初尝试遵循一些Java脚本教程,以便可以在HTML文档中旋转显示名称,但是我发现您需要手动选择文本文件。然后,我也尝试了一些python教程,但是我不知所措。

    def main():
        with open("textfile1.txt") as f:
            with open("file3.txt", "w") as f1:
                for line in f:
                    if "" in line:
                        f1.write(line)
main()

这可以将第一个文件中的文本放入第三个文件中。如何使它在计时器上交替显示?那么30秒后,第3个文件中的文本会从第1个文件内容更改为第2个文件中的内容,然后在30秒后又返回?

2 个答案:

答案 0 :(得分:0)

您是否在脚本中运行main函数? 如果没有,请运行它。在函数之后写入“ main()”(不带引号)。 所有代码:

def main():
    with open("textfile1.txt") as f:
        with open("file3.txt", "w") as f1:
            for line in f:
                if "" in line:
                    f1.write(line)

main()

答案 1 :(得分:0)

这是您可以执行的操作。您需要time模块来设置轮换期间的时间间隔。

import time

def replacetext(sourcefile, destinationfile):
    with open(sourcefile) as sf:
        with open(destinationfile, "w") as df:
            for line in sf:
                df.write(line)
                print(line)


origfiles = ['textfile1.txt', 'textfile2.txt'] #list of source files
destfile = 'file3.txt' #the destination file
delay = 5 #the time interval (in seconds) from one writing to another

while True:
    for ff in origfiles:
        replacetext(ff, destfile)
        time.sleep(delay) #delay in seconds

我重命名了您的主要功能replacetext,但它具有相同的作用。唯一的区别是,它使用文件名作为参数。

请注意,这是一个无限循环。在您从命令行中断脚本之前,它永远不会停止。
要使其在给定的轮换次数后停止,您需要添加一个计数器。例如:

counter = 0
while counter < 10:
    counter += 1
    for ff in origfiles:
        replacetext(ff, destfile)
        time.sleep(delay) #the program sleeps for "delay" seconds

在这种情况下,程序将在10次迭代后终止。