När jag kör programmet med;
python radio.py alternativt ./radio.py får jag denna output efter att ha valt "Spela Radio";
Lustigt nog, när jag använder mig av min launcher i openbox som ser ut som följer;1) East FM
2) HardFM
3) RadioSeven
4) RockKlassiker
5) Vinyl
Traceback (most recent call last):
File "./radio.py", line 131, in <module>
menu()
File "./radio.py", line 27, in menu
radio()
File "./radio.py", line 79, in radio
templist[1] = templist[1].replace("NAME=", "")
IndexError: list index out of range
cupe ~/Dokument/Python $
urxvt -e python ~/Dokument/Python/radio.py
Går det av någon anledning utmärkt.
Programmet:
Kod: Markera allt
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Kräver mpg123 ; sudo apt-get install mpg123
# Ersätt mpg123 med valfri spelare
# Kräver moc; sudo apt-get install mocp
# Ersätt moc med valfri spelare
import os
global cfgpath
cfgpath = "radio.txt"
#Funktionen menu där du väljer vad du vill göra
def menu():
os.system("clear")
print ""
print "-' Radio & Musik i konsolen, jippi! '-"
print ""
print "1) Spela Radio"
print "2) Spela Lokal Musik"
print ""
print "Q) Avsluta"
print ""
val = raw_input("Val: ")
if val =="1":
radio()
if val =="2":
music()
if val == "Q" or "q":
quit()
#funktionen addradio som lägger till radiostationer i radio.txt
def addradio():
#rensa skärmen
os.system("clear")
#öppnar fil och hämtar nuvarande id och sparar i thisid
f = open(cfgpath)
filedata = f.readlines()
f.close()
tempdata = filedata[len(filedata)-1].split(" ")
tempdata[0] = tempdata[0].replace("ID=", "")
id = int(tempdata[0])+1
id = str(id)
name = raw_input("Namn: ")
url = raw_input("Url: ")
f = open(cfgpath, "a")
f.write("\nID="+id+" NAME="+name+" URL="+url)
f.close()
#rensa skärmen
os.system("clear")
print ""
print "Station tillagd"
print ""
raw_input()
radio()
#funktionen radio som har hand om radio-biten
def radio():
#öppna och läsa fil
f = open(cfgpath)
filedata = f.readlines()
f.close()
#skapa nödvändiga variabler
id=0
urllist = list()
#printa en padding ovanför
os.system("clear")
print ""
#data loopen, bearbetar och sorterar data
while id < len(filedata):
templist = filedata[id].split(" ")
templist[0] = templist[0].replace("ID=", "")
templist[1] = templist[1].replace("NAME=", "")
templist[1] = templist[1].replace("_", " ")
templist[2] = templist[2].replace("URL=", "")
templist[2] = templist[2].replace("\n", "")
#printa menyn
print templist[0]+") "+templist[1]
#spara url i en lista
urllist.append(templist[2])
id=id+1
print ""
print "A) Spela egen ström"
print "E) Lägg till station"
print "M) Tillbaka till huvudmenyn"
print "Q) Avsluta"
val = raw_input("val: ")
if val == "Q" or val == "q":
#rensa skärmen
os.system("clear")
exit()
elif val == "E" or val == "e":
addradio()
elif val == "M" or val == "m":
menu()
elif val == "A" or val == "a":
os.system("clear")
own_radio = raw_input("Mata in en egen stream: ")
own_radio = own_radio.lower()
os.system("mpg123 -@ "+own_radio)
raw_input("")
radio()
elif len(val) != 0:
os.system("clear")
os.system("mpg123 -@ "+urllist[int(val)-1])
raw_input("")
radio()
else:
menu()
#funktionen music som har hand om övrig musik
def music():
#rensa skärmen
os.system("clear")
music_location = raw_input("Ange sökväg till din musik: ")
os.system("x-terminal-emulator -e mocp -m " + music_location)
raw_input("")
menu()
#programmet
menu()