请善待这是我的第二篇文章,我希望你们都喜欢。 在这里,我制作了一个程序,在目录中创建目录, 但问题是我想要一种让它自我复制的方法。 非常感谢任何想法和帮助。
之前:
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)
答案 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 worms
或print path
以查看其工作原理。
结果是,将一个类似于下面的字符串传递给函数以创建文件夹结构:
/user/scripts/worm1/worm2/worm3