Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Python vlozeni do promenne konkretni retezec ze seznamu ci souboru  (Přečteno 3985 krát)

perteus

  • Návštěvník
  • Příspěvků: 22
Ahojky vsem,
jsem zacatecnik v pythonu a jen bych potreboval jednu vec. Nejak nechapu jak udelat nasledujici.

Mejme soubor   soubor a v tomto souboru mejme toto
radio : http://stream.radio.com

prave toto mi vrta hlavou. Jakym zpusobem udelat, abych pokud zadam

Kód: [Vybrat]
stanice=input('zadejte nazev stanice')
tak aby misto radio byl soucasti promenne odkaz.

Asi je to blbost omlouvam se za to... treba to jde udelat i pomoci seznamu, ale dost jsem to nepochopil neb, vsude jsou priklady jen s cisly a nikde se neobjevilo presne to co potrebuji :/ Takze bych poprosil o schovyvost a slusne vysvetlit treba jak to udelat nebo ze to udelat nejde ... dekuji.

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #1 kdy: 28 Ledna 2012, 16:36:58 »
Ahoj,
rád pomůžu, ale moc tomu nerozumím.
Máš soubor, který obsahuje odkazy na různá rádia ve formátu "název:odkaz". Jedno rádio na řádek.

Pak se zeptáš uživatele na jméno stanice.

Program vybere ze souboru řádek s tímto jménem stanice a vypíše příslušný odkaz na tuto stanici. Je to tak?
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

perteus

  • Návštěvník
  • Příspěvků: 22
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #2 kdy: 28 Ledna 2012, 17:30:04 »
Omlouvám se za spatne polozeny dotaz. V Badoo jemného udělal skript kdy jsem do složky Radio uložil playlist a podle zadaného názvu se spustil mplayer s tím playlistem.
Ted chci podobně tonudelat v pythonu3
Pro zjednoduseni chci mit třeba soubor radia a v tom by byl na každém řádku název radia a odkaz streamu.
Logický si říkám ze bych si měl vytvořit seznam kde první hodnota by byl název radia a duha ten odkaz asi takto?

Kód: [Vybrat]
stanice={'radio':'http://stream.radia.com'}
Tedy Omlouvám se z hlavy teď nevim jak se ty seznamy tvoří Každopádně mi jde o to jak zajistit abych zadal název rádio ale do příkazu na spuštění mplayeru se přidal ten stream.


Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #3 kdy: 28 Ledna 2012, 19:00:03 »
Tak to je hračka:

Kód: [Vybrat]
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
radio_files = open("a.txt")
radios = dict(map(lambda x: x.split(":",1), radio_files.readlines()))
radio_files.close()

## Priklad...
print radios["cyril"]


Do souboru a.txt si dej třeba:

Kód: [Vybrat]
adam:www.dadadam.cz
barbora:www.bar.bora.com
cyril:geocities.com/~cyril
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

perteus

  • Návštěvník
  • Příspěvků: 22
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #4 kdy: 29 Ledna 2012, 11:12:09 »
Děkuji už to začíná dělat pomalu to co potřebuji. Řeším ale jeden problém

Kód: [Vybrat]
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
# Pokusný kód o vytvoření rádia v pythonu

import os
radio_files = open("stanice")
radios = dict(map(lambda x: x.split(":",1), radio_files.readlines()))
radio_files.close()
print('Dostupné stanice')
print (radios)
stanice=input('Zadej název stanice')

os.spawnvp(os.P_WAIT,"/usr/bin/mplayer",["-cache 1021 ","http://",radios[stanice]])

problém je v tom, že pokud se pokusím volat mplayer tak zaboha tam nejsem schopen dát http:// nevím kde by mohla být chyba
když tam to http není tak se příkaz provede, ale nespustí se přehrávání odkazu, protože mpalyer si myslí, že má spustit soubor

pokud do souboru stanice ulozim adresu ve tvaru http:// tak je jasne, ze nastale reseni nejak nefunguje :/ myslel jsem si, ze proste staci tam dat do tohoo prikazu http:// jako retezec ale nejde :-( ... Jeste nad tim dumam.

Kazdopadne dekuji za prvotni nasmerovani

perteus

  • Návštěvník
  • Příspěvků: 22
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #5 kdy: 29 Ledna 2012, 14:45:51 »
Odpovím si zatím sám nový kód je tento
Kód: [Vybrat]
#!/usr/bin/env python3
# _*_ coding: utf-8 _*_
# Pokusný kód o vytvoření rádia v pythonu

import os
radio_files = open("stanice")
radios = dict(map(lambda x: x.split(";",1), radio_files.readlines()))
radio_files.close()
print('Dostupné stanice')
print (radios)
stanice=input('Zadej název stanice: ')

os.spawnvp(os.P_WAIT,"/usr/bin/mplayer",["-cache 1021 ",radios[stanice]])

v textovem souboru jsem misto : dal ;

problem nastava v okamziku noveho radku. haze mi to tam znak \n takze se prikaz neprovede a pokud je tam vicero radii tak se neprovede taky radia se vypisou na jednom radku

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #6 kdy: 30 Ledna 2012, 09:23:23 »
Opět ti nerozumím.

Co se má prosím stát, pokud je v souboru prázdný řádek?

Ono má 1 rádio více adres?
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

perteus

  • Návštěvník
  • Příspěvků: 22
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #7 kdy: 30 Ledna 2012, 09:40:27 »
pokud mam v souboru stanice.txt dve radia

diskoc;http://radiodisko.cz
music;http://radiomusic.cz

na volani vypisu seznamu radii v tom souboru se objevi toto

http://radiodiskoc.cz\n http://radiomusic.cz

a v tom \n je problem, protoze takhle se to pridava i do promenne pro spusteni mplayeru

pokud mam v souboru jen jedno radio bez odradkovani je to v poradku a vse se spusti, ale jakmile si pridam do souboru vic radii tak to uz nefunguje.

Filip Dominec

  • [Proplesk] [Piškot]
  • Stálý člen
  • **
  • Příspěvků: 1157
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #8 kdy: 30 Ledna 2012, 10:15:08 »
A cílem je to \n ze souboru odmazat?
http://stackoverflow.com/questions/511204/how-to-print-a-string-without-including-n-in-python

Kdybychom jen uměli přesněji definovat, co je cílem. No pořád to úplně nechápu, pravděpodobně se ptáš na něco složitějšího...
http://www.vrattenamstat.cz/ | Buďme tolerantní k triviálním dotazům; neznamenají "neumím to najít", ale "nejsem si jist, že to je správná cesta".

perteus

  • Návštěvník
  • Příspěvků: 22
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #9 kdy: 30 Ledna 2012, 11:41:45 »
podivam se na ten odkaz... a budu dal zkouset, jen nechapu co je k nepochopeni k tomu, ze python vklada za tu adresu \n a diky tomu se mi nespusti spravne mplayer

cilem je mit v jednom souboru seznam radii a s okdazama a z tohoto seznamu si vyberu radio a spustim si ho. Nicmene jsi mi vic nez dost pomohl abych se nad tim poradne zamyslel a zkusil to nejak upravit. Diky.

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re:Python vlozeni do promenne konkretni retezec ze seznamu ci souboru
« Odpověď #10 kdy: 30 Ledna 2012, 23:57:58 »
spis bych rek, ze je problem v tom, ze se to splituje podle : takze ti to odstipne podle : a ne ; (proto tam taky cpes to http)

#edit:
nicmene - nedalo mi to:

Kód: [Vybrat]
#!/usr/bin/env python
# _*_ coding: utf-8 _*_
import os, sys, subprocess

FILE = "stanice" if len(sys.argv) < 2 else sys.argv[1]
try:
radio_file = open(FILE)
radios = [one.rstrip('\n').split(';') for one in radio_file.readlines()]
radio_file.close()
except Exception, e:
sys.exit('Nepodarilo se nacist stanice ze souboru "%s": %s'%(FILE, e))

print 'Dostupné stanice:'
for i, one in enumerate(radios, 1):
print '[%d]\t %s'%(i, one[0])

input = 0
while input > len(radios) or input < 1:
try:
input = int(raw_input('Vyber radio: '))
except:
pass

#subprocess.call(['/usr/bin/mplayer', 'cache 1021', radios[input-1][1]])
subprocess.call(['/usr/bin/mplayer', radios[input-1][1]])

Je to trosku robustnejsi - nespadne to na hubu, kdyz tam zadas blbost (vybiras cislama), nebo neexistuje vstupni soubor. Taky si muzes jako parametr predat jinej soubor. Parametr -cache muj mplayer nezere. Je to v 2.x pythonu. Mej se.
« Poslední změna: 31 Ledna 2012, 00:10:57 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

 

Provoz zaštiťuje spolek OpenAlt.