一行上的Python缩进错误不';不存在

一行上的Python缩进错误不';不存在,python,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_

代码如下:

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行长)。我不知道哪里出了错

try
语句后面应该有一个
除外的
语句

您可以更改代码:

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

Python需要
第10行
中的
except
语句您刚刚忘记了
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所指出的,仅仅捕获
异常并不是一个好主意,为您的工作使用更好的异常处理程序(在这种情况下,可能是
文件存在错误
)。

捕获所有异常几乎总是一个坏主意,例如,在这里它还将消除名称错误(例如,如果一个变量拼写错误)或权限错误。最好只捕获真正想要捕获的异常,所以这里可能是FileExistError。@syntonym,没错,但这取决于他