Sida 1 av 1
Motsvarighet till sed/awk i python (samt en annan)
Postat: 04 jul 2009, 19:23
av Rasmus
Första frågan, finns det någon motsvarighet till sed alternativt awk i python?
Raden jag har är
Kod: Markera allt
<Track: Dead by April - In My Arms - Dead by April (bb3a7a742a2249fdae3ba7a70471fd99)>
och vill bara spara "Dead by April - In My Arms"
Fråga två, hur var det man gjorde för att veta vilka funktioner som är tillgängliga i en modul(kallas det så? alltså en som man får efter import) Jag tycker inte help() ger någon relevant information...
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 04 jul 2009, 19:32
av andol
Vad gäller första frågan så skulle i alla fall jag lösa problemet med hjälp utav ett väl valt reguljärt uttryck.
http://docs.python.org/library/re.html
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 04 jul 2009, 19:50
av David Andersson
Rasmus skrev:Första frågan, finns det någon motsvarighet till sed alternativt awk i python?
Raden jag har är
Kod: Markera allt
<Track: Dead by April - In My Arms - Dead by April (bb3a7a742a2249fdae3ba7a70471fd99)>
och vill bara spara "Dead by April - In My Arms"
Problemet är lite underspecificerat.
Man skulle kunna ha mönster som känner igen "
<Track: " och "
\([0-9a-f]+\)>" och fångar det emellan, men tydligen inte allt. Jag antar att det inte räcker att känna igen " - " (antingen sista eller andra förekomsten) eftersom bindestreck kan förekomma i både låtnamn och artistnamn. Eller kan det inte?
Rasmus skrev:
Fråga två, hur var det man gjorde för att veta vilka funktioner som är tillgängliga i en modul(kallas det så? alltså en som man får efter import) Jag tycker inte help() ger någon relevant information...
Har du provat pydoc? Exempel
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 04 jul 2009, 20:35
av Rasmus
re verkar vara en bra ide, orkade inte läsa igenom allt nu men det känns som den ska klara uppgiften.
Om låtar/artister får innehålla - vet jag inte, däremot ger en sökning på - ingenting. Med andra ord finns det för nuvarande ingen låt/artist/album som inehåller " - " så den kanske är okej att leta efter den (med mellanrum före och efter)
pydoc verkade ge samma svar som help() Det borde ju ligga .py (eller vad det är för ändelse) filer någonstans i systemet som man kan titta i?
underspecificerat? ja kanske, men det är allt jag vet... Jag är ingen bra programmerare, dessutom var det jätteläge sen sist så jag fick sitta i 5-10 minuter bara för att komma ihåg att de var print() som var motsvarigheten till echo.
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 04 jul 2009, 23:04
av David Andersson
Rasmus skrev:
underspecificerat? ja kanske, men det är allt jag vet...
Ingen fara. Nu vet vi att " - " inte förekommer i namn, så det inte underspecificerat längre.
Exempel (kommandorader)
Kod: Markera allt
python -c 'import re; print re.findall("<Track: (.*?) - (.*?) - ","<Track: Dead by April - In My Arms - Dead by April (bb3a7a742a2249fdae3ba7a70471fd99)>")'
python -c 'import re; print re.search("<Track: (.*?) - (.*?) - ","<Track: Dead by April - In My Arms - Dead by April (bb3a7a742a2249fdae3ba7a70471fd99)>").groups()'
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 05 jul 2009, 00:16
av zoombywoof
Fråga 2 >> dir('module')
EX.
> python
>>>> import os
>>>> print dir(os)
/zw
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 06 jul 2009, 22:07
av DrMegahertz
Rasmus skrev:
Fråga två, hur var det man gjorde för att veta vilka funktioner som är tillgängliga i en modul(kallas det så? alltså en som man får efter import) Jag tycker inte help() ger någon relevant information...
Biblioteksreferensen är alltid bra att ha nära till hands, oavsett språk;
http://docs.python.org/library/index.html
Re: Motsvarighet till sed/awk i python (samt en annan)
Postat: 07 jul 2009, 14:27
av Rasmus
Tack alla! En fråga till, om man ska göra en musikspelare (front-end endast, grunden ska bli despotify) hur gör man då med shuffle? När man spelar en låt och den är klar fortsätter despotify automatiskt till nästa, och måste därför manuellt göra en funktion för det. Väntar man så länge som låten håller på för att därefter slumpa fram en ny? Låter dumt, det borde finnas bättre sätt...