python蠕虫如何使其更加复杂?

2024-09-30 14:28:42 发布

您现在位置:Python中文网/ 问答频道 /正文

请客气这是我的第二个帖子,希望大家都喜欢。 在这里我做了一个程序,在目录中创建目录, 但问题是我想要一种自我复制的方法。 任何想法和帮助都将不胜感激。在

在此之前:

user/scripts

之后:

^{pr2}$

脚本如下:

import os, sys, string, random
worms_made = 0
stop = 20
patha = ''
pathb = '/'
pathc = ''
def fileworm(worms_made, stop, patha, pathb, pathc):
    filename = (''.join(random.choice(string.ascii_lowercase 
    +string.ascii_uppercase + string.digits) for i in range(8)))
    pathc = patha + filename + pathb
    worms_made = worms_made + 1
    os.system("mkdir %s" % filename)
    os.chdir(pathc)
    print "Worms made: %r" % worms_made
    if worms_made == stop:
        print "*Done"
        exit(0)
    elif worms_made != stop:
        pass  
    fileworm(worms_made, stop, patha, pathb, pathc)

fileworm(worms_made, stop, patha, pathb, pathc)

Tags: 目录stringosasciirandomfilenamestopprint
1条回答
网友
1楼 · 发布于 2024-09-30 14:28:42

要创建可变深度,可以执行以下操作:

import os

depth = 3
worms = ['worm{}'.format(x) for x in range(1, depth+1)]
path = os.path.join(r'/user/scripts', *worms)
os.path.makedirs(path)

如前所述,^{}将在一次调用中创建所有必需的文件夹。你只需要建立完整的路径。在

Python有一个函数可以帮助创建名为os.path.join()的路径。这确保在每个部分之间为当前操作系统自动添加正确的/或{}。在

worms是一个包含["worm1", "worm2", "worm3"]的列表,它是使用一个叫做列表理解的Python特性创建的。它被传递给os.path.join()函数,使用*表示列表的每个元素都作为单独的参数传递。在

我建议您尝试添加print wormsprint path,看看它是如何工作的。在

结果是一个如下所示的字符串被传递到函数以创建文件夹结构:

^{pr2}$

相关问题 更多 >