python worm如何让它更复杂?

时间:2017-03-26 19:19:33

标签: python

请善待这是我的第二篇文章,我希望你们都喜欢。 在这里,我制作了一个程序,在目录中创建目录,  但问题是我想要一种让它自我复制的方法。 非常感谢任何想法和帮助。

之前:

user/scripts

之后:

user/scripts/worm1/worm2/worm3

脚本如下:

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)

1 个答案:

答案 0 :(得分:0)

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

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)

如上所述,os.path.makedirs()将在一次通话中创建所有必需的文件夹。你只需要建立完整的路径。

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

worms是一个包含["worm1", "worm2", "worm3"]的列表,它是使用名为list comprehension的Python功能创建的。这将使用os.path.join()传递给*函数,这意味着列表的每个元素都作为单独的参数传递。

我建议您尝试添加print wormsprint path以查看其工作原理。

结果是,将一个类似于下面的字符串传递给函数以创建文件夹结构:

/user/scripts/worm1/worm2/worm3