Python:如何解决IndentationError
我的契约错误似乎无法解决。Python:如何解决IndentationError,python,indentation,Python,Indentation,我的契约错误似乎无法解决。 #/usr/bin/env python 导入操作系统 导入glob 进口舒蒂尔 进口诱变剂 从系统导入退出 musicdir=raw_input(“音乐文件位于哪个目录?:”) musfile=glob.glob(musicdir+'/'+“*.mp3”) musfile1=glob.glob(musicdir+'/'+“*.flac”) musfile.extend(musfile1) newmusicdir=raw_input(“音乐文件应组织到哪个目录?:”
#/usr/bin/env python
导入操作系统
导入glob
进口舒蒂尔
进口诱变剂
从系统导入退出
musicdir=raw_input(“音乐文件位于哪个目录?:”)
musfile=glob.glob(musicdir+'/'+“*.mp3”)
musfile1=glob.glob(musicdir+'/'+“*.flac”)
musfile.extend(musfile1)
newmusicdir=raw_input(“音乐文件应组织到哪个目录?:”)
完成=错误
虽然没有这样做:
对于m in musfile:
如果是musfile:
尝试:
musta=诱变剂.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+'/'))
除操作错误外:
通过
最后:
尝试:
如果m.endswith('.mp3'):
重命名(m,mtr+'-'+mar+'-'+mti+'.mp3')
m=mtr+'-'+mar+'-'+mti+'.mp3'
shutil.move(m,newmusicdir+'/'+mar+'/'+mal+'/'))
elif m.endswith(“.flac”):
操作系统重命名(m,mtr+'-'+mar+'-'+mti+'.flac')
m=mtr+'-'+mar+'-'+mti+'.flac'
shutil.move(m,newmusicdir+'/'+mar+'/'+mal+'/'))
elif非多文件:
打印“看来我们已经完成了。请按退出”
原始输入()
系统出口(0)
可能的原因是制表符和空格字符混合。你应该在任何地方都使用其中一个。配置编辑器以执行此操作。建议设置为4个空格缩进。对于vim,这将是设置ts=4 sw=4 expandtab
在你的问题中发布你的错误将减少被否决的可能性,而不是要求人们获取你的代码并自己运行它
正如@Mu Mind所说,您还有一个
try
块,除了或finally
子句之外没有。由于您尚未发布错误,我不能确定,但我敢打赌,如果您阅读它,它会显示“第39行意外缩进…”或类似内容。请删除该try
或添加异常处理。您有一个try
块(从第30行开始),没有除外我没有看到第二个除外块。这应该会破坏它,但我不认为它会给你一个索引错误
,因此你可能会有更多的问题。你有没有看过pep8(),它会自动检查你的代码是否有错误
test.py:12:80:E501行太长(86个字符)
测试py:18:1:W191压痕包含标签
test.py:32:18:E231在“,”之后缺少空格
test.py:33:10:E225运算符周围缺少空格
test.py:42:16:W292文件末尾没有换行符
发布准确的错误-可能包含行号!同时在错误附近张贴代码。很可能缩进不当。最后,请在这里发布代码之前将所有制表符替换为4个空格。如果正确答案为您解决了问题,则应将其标记为“已接受”。单击答案旁边的复选标记。您可能指的是一个发布错误消息但没有任何源代码的人(Q必须已被删除,我现在找不到它)。我认为您很好,但正如其他人所说,如果包含实际的错误消息,会使问题变得更好。好的,谢谢。你知道我将如何配置Geany来实现这一点吗?因为我使用的是IDE。@wkoomson:@wkoomson:你看过Geany的帮助页面了吗?就是这样!谢谢,我不知道每次使用try语句时都必须使用and except语句。@wkoomson:您可以使用不带except语句的try/finally块。但是,如果您既没有“除了”也没有“最后”,那么try语句就没用了。@wkoomson:似乎很清楚。你在用什么教程?它确实给出了一个缩进错误当我尝试它时,它给了我一个SyntaxError
,但我又尝试了一次,这次把try
块放在if
中,它产生了一个IndendationError
,所以我想这取决于……但是,这些样式警告实际上都与问题无关。
#!/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)