I am making a music player in python 2.6 with Tkinter. Here's my code :

from Tkinter import *
import mp3play
import tkFileDialog
import Tkinter
def open_file():                                #Opens a dialog box to open .mp3 file
global music                                #then sends filename to file_name_label.
global mp3
global play_list
filename.set (tkFileDialog.askopenfilename(defaultextension = ".mp3", filetypes=[("All Types", ".*"), ("MP3", ".mp3")]))
playlist = filename.get()
playlist_pieces = playlist.split("/")
play_list.set (playlist_pieces[-1])
playl = play_list.get()
play_list_display.insert(END, playl)
mp3 = filename.get()
print mp3
music = mp3play.load(mp3)
pieces = mp3.split("/")
name.set (pieces[-1])

def play():                                     #Plays the .mp3 file

def stop():                                     #Stops the .mp3 file
def pause():                                    #Pauses or unpauses the .mp3 file
if music.ispaused() == True:
elif music.ispaused() == False:

def vol(event):                                 #Allows volume to be changed with the slider
v = Scale.get(volume_slider)
def Exit():
root = Tk()
filename = Tkinter.StringVar()
name = Tkinter.StringVar()
play_list = Tkinter.StringVar()
menubar = Menu(root)
filemenu = Menu(menubar, tearoff=0)
menubar.add_cascade(label='File', menu = filemenu)
filemenu.add_command(label='Open', command = open_file)
filemenu.add_command(label='Exit', command = Exit)
open_file = Button(root, width = 6, height = 1, text = 'Open file', command = open_file)
open_file.grid(row=0, column=3)
play_button = Button(root, width = 5, height = 1, text='Play', command = play)
play_button.grid(row=0, column=0, sticky = W)
stop_button = Button(root, width = 5, height = 1, text='Stop', command = stop)
stop_button.grid(row=0, column=1, sticky = W)
pause_button = Button(root, width = 5, height = 1, text='Pause', command = pause)
pause_button.grid(row=0, column=2)
volume_slider = Scale(root, label='Volume', orient = 'horizontal', fg = 'black', command = vol)
volume_slider.grid(row=0, column=4)
file_name_label = Label(root, font=('Verdana', 8), fg = 'black', wraplength = 300, textvariable=name )
file_name_label.grid(row=3, column=0, columnspan=8)
play_list_window = Toplevel(root, height = 150, width = 100)
play_list_display = Listbox(play_list_window, width = 50)   


This code can open a mp3 file, insert it in playlist and play it. But it cant allow to play song by selecting it from playlist. Can anyone tell me how to make things work by selecting from playlist?

First of all you must indent your code correctlly. And global is meaningless outside of functions.

Also put your function definitions right after import statements. play, stop and exit functions are compeletely unnecessary, however. as they only call another function.

Do use single empty lines (double after imports) to clarify structure of your code, with discretion.

Edited 4 Years Ago by pyTony

This article has been dead for over six months. Start a new discussion instead.