wkoomson
wkoomson

Reputation: 3295

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(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)

Upvotes: 2

Views: 1623

Answers (4)

Brian Gianforcaro
Brian Gianforcaro

Reputation: 27180

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

Upvotes: 4

Gustav Larsson
Gustav Larsson

Reputation: 8477

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.

Upvotes: 5

Mu Mind
Mu Mind

Reputation: 11194

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

Upvotes: 13

Daenyth
Daenyth

Reputation: 37431

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.

Upvotes: 2

Related Questions