开发者

Python: How to resolve IndentationError

My IndentationError just seems so irresolvable. 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(must开发者_Go百科a['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)


You have a try block (starting on line 30) with no except


I don't see an except block for your second try. That should break it, but I don't think it gives you a IndendationError so you might have more problems.


Have you ever looked at pep8 ( link ) it automatically checks your code for errors.

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


The likely cause is mixed tab characters and space characters. You should be using all of one or the other everywhere. Configure your editor to do so. The recommended setting is 4-space indents. For vim, this would be set ts=4 sw=4 expandtab.

Posting your error in your question would make this less likely to be downvoted, instead of asking people to grab your code and run it themselves...

As @Mu Mind said, you also have a try block with no except or finally clause. Since you haven't posted your error, I can't be sure, but I bet if you read it it will say something line "Unexpected de-indent at line 39...", or similar. Either remove that try or add exception handling.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜