【发布时间】:2021-02-02 18:33:33
【问题描述】:
我有两个 python 脚本,一个需要不断地从用户那里获取输入并写入文件,而另一个同时不断地检查文件中的更新。我的问题是在运行检查脚本时,os系统终端“位置”似乎已经被填满了,我无法运行输入脚本。它要么显示检查脚本终端,要么停留在 cmd 终端上的闪烁光标上并且不加载。此外,我无法找到一种方法让这两个脚本无限期地运行,直到用户终止该进程。另外,它可能是我的电脑,但是在运行时
while True:
check()
在我的检查脚本中,它冻结了我的电脑并且也不允许输入脚本运行 顺便说一句,我的电脑出现了一些问题,所以我今天要重置它,我希望这就是问题所在,但是我已经为这个问题发疯了,不再相信我对此的判断了:(
#我的检查脚本
def check():
with open('Tasks.txt','r') as file:
data = file.readlines()
if not "Neuron" in data and len(data)!=0:
i=0
Chars = data[0].split(" ")
while(i<len(Chars)):
c=0
print(len(data[0]))
print('Count:' + str(i))
print('Chars are ' + Chars[i])
while(c<len(Chars[i])):
Neuron.createNeuron(Chars[i][c-1:c])
c+=1
i+=1
data.pop(0)
Neuron.writeData('Tasks.txt',data,'w')
#os.system('py Create.py')
check()
#我的用户输入脚本
def CM():
String = input(">")
#res = ' '.join(format(ord(x), 'b') for x in String)
#print(res)
Neuron.writeData('Logs.txt',Neuron.writeData('Tasks.txt',(' '.join(format(ord(x), 'b') for x in String)+'\n'),'a'),'a')
CM()
CM()
【问题讨论】:
-
你需要在不同的终端窗口中运行它们。
-
这不是一个真正的 Python 问题,而是一个 shell 问题。如果您使用的是 *nix shell,您可以通过在命令末尾放置一个与号 (&) 来运行后台进程。如果您使用的是 Windows,我相信 Windows 也有类似的东西。在尝试运行第二个进程之前,您需要将第一个进程作为后台进程运行
-
当你有多线程时为什么需要多个脚本:)
-
Barmar 我不知道该怎么做。迈克尔,我实际上并没有真正考虑过这一点。我会试试的。 @HjSin,我尝试过多线程,我相信它有效,但它们似乎在不做任何事情的情况下继续运行。我还写了它们来打印它们所做的事情,而当我使用多线程时我看不到这一点。我创建了一个日志文件,但每次都必须打开它才能看到更新的文件。另外,堆栈溢出不允许我@多个人:(
标签: python python-3.x simultaneous