大型Python脚本会耗尽磁盘空间吗?

0 投票
3 回答
1833 浏览
提问于 2025-04-15 18:42

更新: 有趣的是,差不多15分钟后,我似乎自动恢复了大约500MB的空间。这是怎么回事呢?

我在使用Mac OSX 10.5.6(Leopard)。我写了一个Python脚本来解决一个Project-Euler的问题。我的脚本里有一个循环,循环次数非常大,达到了600851475143。

我在Mac的终端上使用了Vi和Python。

我运行了5分钟都没有得到结果。我就让它继续运行,直到有结果为止。然后我收到了一个错误提示:“你的启动磁盘几乎满了”。

我看到我的磁盘只剩下38MB的空间,之前至少还有1GB的空间,真是吓了我一跳。我立刻关闭了“终端”。但现在我不知道怎么才能找回我的内存。 :(


有人能告诉我怎么恢复我脚本执行时占用的内存吗?


这是我的脚本:

# Program to Find Largest Prime Factor of 600851475143

def isPrime(n):           #Check if Prime or Not
    i,notFactor=2,False
    while i<n:
        if(n%i==0):
            break
        notFactor=True
        i = i+1
    return notFactor

test = 600851475143       #Number to Test
i = test-1

while i>1:                #Finds Factors and See if they are Prime
    print i
    if test%i==0:
        if isPrime(i)==True:  #Syntax Error Fixed. Thanks, batbrat!
            print i
            break
    i=i-1

3 个回答

0

我最开始想的是,你的程序占用了很多内存,这导致了交换文件的增大。不过,从代码来看,它并没有消耗太多内存。所以这个脚本并不是导致空间丢失的原因。

0

那不是Python,而是你系统上其他东西在占用内存……可能是你的浏览器。

1GB的空闲空间在Mac上根本不够用……你至少需要有10GB的空闲空间,所以是时候清理一下了。

2

你的脚本之所以会占满磁盘空间,唯一的原因就是它创建了很多大的临时文件,而且没有进行清理。单单运行一个Python程序是不会让你的磁盘满的。

要恢复磁盘空间,你需要找出空间是怎么被占用的,然后删除那些临时文件。不过,我不太确定在Mac上怎么做。在Windows和Linux上,有很多很好的工具可以帮助你查看磁盘使用情况。

补充一下:欧拉问题的设计是为了在一分钟内解决,即使是在性能一般的电脑上。如果你花了5分钟,那说明你可能是用错了方法。

撰写回答