检查目录是否存在,突破循环

时间:2014-11-10 18:49:16

标签: python for-loop mkdir shutil

试图查看目录是否存在,如果它没有将目录移动到另一个目录中,然后继续循环的下一次迭代,这就是我正在做的事情,设法让第一个循环工作,将目录移动到另一个目录时,只是最后一部分正确创建所有文件,但抛出错误,错误和我的部分代码:

 File "testdraft.py", line 305, in findReplace
    if not os.path.exists('{}/'.format.replace+str(x)):shutil.move(str(x), '{}/'.format(replace))
AttributeError: 'builtin_function_or_method' object has no attribute 'replace'

 base_direct = '{}/'.format(replace)

 for x in range(1,20):
        if not os.path.exists(str(x)+'/'):os.mkdir(str(x)+'/') #this part works
        else: continue
        shutil.copy(filename, str(x))
        shutil.copy(filename1, str(x))
        frag = open("fragments_procs.in", 'w')
        frag.write(str(x) + "\n" + str(20-x))
        shutil.copy("fragments_procs.in", str(x))
        shutil.move(str(x), '{}/'.format(replace)) #believe from here and down not working
         if not os.path.exists('{}/'.format(replace)+str(x)):shutil.move(str(x), '{}/'.format(replace))
        else: continue

3 个答案:

答案 0 :(得分:0)

您的代码非常混乱且难以理解,但无论如何,305行中存在明确的语法错误

if not os.path.exists('{}/'.format.replace+str(x))

这完全没有意义。 str.format函数没有任何名为replace的属性(这是一个非常糟糕的变量名称,因为字符串有一个替换方法)

我的猜测是你想做这样的事情:

if not os.path.exists('{}{}/'.format(replace, x))

答案 1 :(得分:0)

您可以使用walk,并且每次都连接子目录。

for path, subdirs, files in os.walk(directory):
    for filename in files:
        print os.path.join(path, filename)

答案 2 :(得分:0)

replace是字符串的内置方法,因此将其用作变量名会让事情变得混乱

'{}/'.format(replace+str(x))