2015-09-04 31 views
-2

我写的代码一点点重命名一堆mp3文件(更多的实验比什么)Tkinter的浏览按钮不在CMD工作

我完成了计划,并在空闲完美地工作,但是当我尝试从CMD运行(蟒蛇C:/ MusicRenamer)它给人的错误

C:\Users\bradr>python C:/MusicRenamer.py 
Traceback (most recent call last): 
    File "C:/MusicRenamer.py", line 9, in <module> 
    root.filename = filedialog.askopenfilename(filetypes = (("Music Files", "*.mp3"),("All Files", "*.*"))) 
NameError: name 'filedialog' is not defined 

守则

import os 
from tkinter import * 
from tkinter.filedialog import askopenfilename 
from mutagen.mp3 import MP3 
from mutagen.easyid3 import EasyID3 
import mutagen.id3 

root = Tk() 
root.filename = filedialog.askopenfilename(filetypes = (("Music Files", "*.mp3"),("All Files", "*.*"))) 
print(root.filename) 

#Find file and split artist from title 
path, name = os.path.split(root.filename) 
artist, titleExtend = name.split("- ") 
Title, extension = os.path.splitext(titleExtend) 
print("Title: ", Title) 
print("Artist: ", artist) 

#Rename files 
filePath = root.filename 

try: 
    meta = EasyID3(filePath) 
except mutagen.id3.ID3NoHeaderError: 
    meta = mutagen.File(filePath, easy=true) 
    meta.add_tags() 
type(meta) 

meta['title'] = Title 
meta['artist'] = artist 
meta['genre'] = "Space Funk" 
meta.save(filePath, v1=2) 
changed = EasyID3(root.filename) 
os.rename(root.filename, path+"/"+titleExtend) 

任何帮助,将不胜感激,谢谢 ,文胸d

回答

0

一个很好的经验法则是假定错误信息告诉你真相,所以你所要做的就是回答“为什么不用filedialog定义?”这个问题。

当我这样做时,我看到你的代码没有导入filedialog,所以这就是为什么你得到的错误“name”filedialog'未定义“。 IDLE可能导入它,这可能解释了它为什么在IDLE中起作用。

你已经导入askopenfilename,所以调用它时,你不需要它的前缀:

from tkinter.filedialog import askopenfilename 
... 
root.filename = askopenfilename(...) 
+0

我的错误非常感谢你。 –