我有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秒后又返回?
答案 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次迭代后终止。