我的 IndentationError 似乎无法解决。 http://pastebin.com/AFdnYcRc。
#!/usr/bin/env python
import os
import glob
import shutil
import mutagen
from sys import exit
musicdir = raw_input("What directory are the music files located in? : ")
musfile = glob.glob(musicdir + '/' + "*.mp3")
musfile1 = glob.glob(musicdir + '/' + "*.flac")
musfile.extend(musfile1)
newmusicdir = raw_input("What directory should the music files be organized into? : ")
done = False
while not done:
for m in musfile:
if musfile:
try:
musta = mutagen.File(m, easy=True)
mar = str(musta['artist'][0])
mal = str(musta['album'][0])
mti = str(musta['title'][0])
mtr = str(musta['tracknumber'][0])
os.makedirs(newmusicdir + '/' + mar + '/' + mal + '/')
except OSError:
pass
finally:
try:
if m.endswith('.mp3'):
os.rename(m,mtr + ' - ' + mar + ' - ' + mti + '.mp3')
m =mtr + ' - ' + mar + ' - ' + mti + '.mp3'
shutil.move(m,newmusicdir + '/' + mar + '/' + mal + '/')
elif m.endswith('.flac'):
os.rename(m,mtr + ' - ' + mar + ' - ' + mti + '.flac')
m = mtr + ' - ' + mar + ' - ' + mti + '.flac'
shutil.move(m,newmusicdir + '/' + mar + '/' + mal + '/')
elif not musfile:
print "Looks like we're done here. Please press <enter> to exit"
raw_input()
sys.exit(0)
您有一个
try
块(从第 30 行开始),没有 except
我没有看到你的第二个
except
的try
块。这应该会打破它,但我不认为它会给你一个IndendationError
,所以你可能会遇到更多问题。
您是否看过 pep8(link),它会自动检查您的代码是否有错误。
test.py:12:80: E501 line too long (86 characters)
test.py:18:1: W191 indentation contains tabs
test.py:32:18: E231 missing whitespace after ','
test.py:33:10: E225 missing whitespace around operator
test.py:42:16: W292 no newline at end of file
可能的原因是制表符和空格字符混合。您应该在任何地方都使用其中之一或另一个。配置您的编辑器来执行此操作。建议设置为 4 个空格缩进。对于 vim,这将是
set ts=4 sw=4 expandtab
。
在问题中发布你的错误会降低被否决的可能性,而不是要求人们获取你的代码并自己运行......
正如 @Mu Mind 所说,你还有一个
try
块,没有 except
或 finally
子句。由于您还没有发布错误,所以我不能确定,但我敢打赌,如果您阅读它,它会显示“第 39 行意外取消缩进...”或类似内容。删除该 try
或添加异常处理。