我想知道是否有可能在任何给定的点在一个基本的Python脚本中执行一个动作,所以说它什么时候关闭。我有以下代码来寻找素数(只是为了好玩)作为python脚本关闭执行一个动作
number = 1
primelist = []
nonprime = []
while number < 1000:
number += 1
for i in range(number):
if i != 1 and i != number and i !=0:
if number%i == 0:
nonprime.append(number)
else:
primelist.append(number)
nonprimes = open("nonprimes.txt", "w")
for nonprime in set(primelist) & set(nonprime):
nonprimes.write(str(nonprime) + ", ")
nonprimes.close()
所以基本上我想运行最后一部分,因为脚本停止。如果这是不可能的,有什么方法可以让我在程序运行时按“空格”,然后保存列表?
干杯提前:)
编辑:
我已经修改了代码,包括atexit对模块的建议,但它似乎没有奏效。那就是:
导入时,atexit对
class primes():
def __init__(self):
self.work(1)
def work(self, number):
number = 1
self.primelist = []
self.nonprime = []
while number < 20:
time.sleep(0.1)
print "Done"
number += 1
for i in range(number):
if i != 1 and i != number and i !=0:
if number%i == 0:
self.nonprime.append(number)
else:
self.primelist.append(number)
nonprimes = open("nonprimes.txt", "w")
for nonprime in set(self.primelist) & set(self.nonprime):
nonprimes.write(str(nonprime) + ", ")
nonprimes.close()
def exiting(self, primelist, nonprimelist):
primelist = self.primelist
nonprimelist = self.nonprime
nonprimes = open("nonprimes.txt", "w")
for nonprime in set(self.primelist) & set(self.nonprime):
nonprimes.write(str(nonprime) + ", ")
nonprimes.close()
atexit.register(exiting)
if __name__ == "__main__":
primes()
什么叫半句是什么意思? – kvivek 2013-02-28 12:18:59
它将列表保存到.txt文件的部分,对不起,没有指定 – ReallyGoodPie 2013-02-28 12:25:35
您正在寻找的内容称为多线程。请参阅http://docs.python.org/2/library/multiprocessing.html – 2013-02-28 12:27:40