2017-03-09 30 views
-1

的代码如下:Python的缩进错误不存在

import glob 
import os 
import shutil 

for file_path in glob.glob(os.path.join(folder, '*Tomo*_[1-100]_*')): 
    new_dir = file_path.rsplit('.', 1)[0] 
    try: 
     os.mkdir(os.path.join(folder, new_dir)) 
#shutil.move(file_path,os.path.join(new_dir,os.path.basename(file_path))) 

的shutil命令当前注释掉,因为这是造成一个语法错误,我不知道为什么。但是当试图运行这个时,我得到了第10行的缩进错误(代码长度为9行)。我对我出错的地方感到不知所措。

回答

6

你刚才忘了except条款:

import glob 
import os 
import shutil 

for file_path in glob.glob(os.path.join(folder, '*Tomo*_[1-100]_*')): 
    new_dir = file_path.rsplit('.', 1)[0] 
    try: 
     os.mkdir(os.path.join(folder, new_dir)) 
    except Exception as e: 
     pass 
shutil.move(file_path,os.path.join(new_dir,os.path.basename(file_path))) 

编辑:由于syntonym点,是不是一个好主意,只是赶上Exception,为你的工作使用更好的异常处理程序(在这种情况下,公关obable FileExistsError)。

+3

全面例外几乎总是一个坏主意,在这里它也会沉默NameErrors(例如,如果一个变量会拼写错误)或许可错误。最好只捕获一个真正想要捕捉的异常,所以这里可能是FileExistsError。 – syntonym

+0

@syntonym,确切地说,但这只是他自己 – Netwave

0

try声明期望在它后面有一个except声明。

你可以改变你的代码:

for file_path in glob.glob(os.path.join(folder, '*Tomo*_[1-100]_*')): 
    new_dir = file_path.rsplit('.', 1)[0] 
    try: 
     os.mkdir(os.path.join(folder, new_dir)) 
    except: 
     print "Error joining path" 
     # or simply 
     pass 
0

Python的期待except声明line 10