Skip to main content
 首页 » 编程设计

Python:我的脚本不允许我创建大文件

2025年05月04日16xiaohuochai

我正在制作一个小的 python 脚本,它将创建各种形状和大小的随机文件,但它不会让我创建大文件。我希望能够创建最大约 8GB 的​​文件,我知道这会花费很长时间,但我并不担心。

问题是 Python 2.7 不会处理我为了创建将填充我的文件的随机文本而扔给它的大量数字。

我的代码的目的是创建具有随机名称和扩展名的文件,用随机数量的垃圾文本填充文件并保存文件。它会一直重复此操作,直到我关闭命令行窗口。

import os 
import string 
import random 
 
 
ext = ['.zip', '.exe', '.txt', '.pdf', '.msi', '.rar', '.jpg', '.png', '.html', '.iso'] 
 
min = raw_input("Enter a minimum file size eg: 112 (meaning 112 bytes): ") 
minInt = int(min) 
 
max = raw_input("Enter a maximum file size: ") 
maxInt = int(max) 
 
def name_generator(chars=string.ascii_letters + string.digits): 
    return ''.join(random.choice(chars) for x in range(random.randint(1,10))) 
 
def text_generator(chars=string.printable + string.whitespace): 
    return ''.join(random.choice(chars) for x in range(random.randint(minInt,maxInt))) 
 
def main(): 
    fileName = name_generator() 
    extension = random.choice(ext) 
    file = fileName + extension 
 
    print 'Creating ==> ' + file 
    fileHandle = open ( file, 'w' ) 
    fileHandle.write ( text_generator() ) 
    fileHandle.close() 
    print file + ' ==> Was born!' 
 
while 1: 
    main() 

任何帮助将不胜感激!

请您参考如下方法:

按照以下方式使其变得懒惰:

import string 
import random 
from itertools import islice 
 
chars = string.printable + string.whitespace 
# make infinite generator of random chars 
random_chars = iter(lambda: random.choice(chars), '') 
with open('output_file','w', buffering=102400) as fout: 
    fout.writelines(islice(random_chars, 1000000)) # write 'n' many