Python Guru needed
Paulo Cavalcanti
promac at gmail.com
Thu Jan 8 01:44:42 UTC 2009
On Wed, Jan 7, 2009 at 11:01 PM, Paulo Cavalcanti <promac at gmail.com> wrote:
>
>
> On Wed, Jan 7, 2009 at 10:52 PM, Jim <mickeyboa at sbcglobal.net> wrote:
>
>> Ed Greshko wrote:
>>
>>> Jim wrote:
>>>
>>>
>>>> Arthur Pemberton wrote:
>>>>
>>>>
>>>>> On Wed, Jan 7, 2009 at 5:18 PM, Arthur Pemberton <pemboa at gmail.com>
>>>>> wrote:
>>>>>
>>>>>
>>>>>> On Wed, Jan 7, 2009 at 5:06 PM, Jim <mickeyboa at sbcglobal.net> wrote:
>>>>>>
>>>>>>
>>>>>>> Matthew Flaschen wrote:
>>>>>>>
>>>>>>>
>>>>>>>> Jim wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>> FC 10/KDE
>>>>>>>>>
>>>>>>>>> I'm trying to set a simple Alarm Clock in FC10 and I have a Python
>>>>>>>>> script I picked up, but I have error, running the script.
>>>>>>>>> Can you explain to me with # comments on each line how to make
>>>>>>>>> this work.
>>>>>>>>>
>>>>>>>>> import time
>>>>>>>>> import os
>>>>>>>>>
>>>>>>>>> not_executed = 1
>>>>>>>>>
>>>>>>>>> while(not_executed):
>>>>>>>>> dt = list(time.localtime(time.time())
>>>>>>>>> hour = dt[3]
>>>>>>>>> minute = dt[4]
>>>>>>>>> if hour == 5 and minute == 45:
>>>>>>>>> os.popen2("open /Users/jun/shout.mp3")
>>>>>>>>> not_executed = 0
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Error Message;
>>>>>>>>>
>>>>>>>>> $ python AlarmClock
>>>>>>>>> File "AlarmClock", line 7
>>>>>>>>> dt = list(time.localtime(time.time())
>>>>>>>>> ^
>>>>>>>>> IndentationError: expected an indented block
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>> It's because of Python's always charming significant whitespace.
>>>>>>>> I.E.
>>>>>>>> Python uses indenting instead of braces, making problems like this
>>>>>>>> extremely common. (No sane language even has "IndentationErrors".
>>>>>>>> Also,
>>>>>>>> you were missing a paren, but that's not what caused the error
>>>>>>>> above.
>>>>>>>>
>>>>>>>> A correct version is attached. Hopefully it will not get mangled by
>>>>>>>> your client.
>>>>>>>>
>>>>>>>> Matt Flaschen
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>> I ran yo
>>>>>>> $ python times.py
>>>>>>> Welcome to the talking alarm clock
>>>>>>> This program is public domain
>>>>>>>
>>>>>>> Traceback (most recent call last):
>>>>>>> File "times.py", line 1, in <module>
>>>>>>> import time
>>>>>>> File "/home/mickey/time.py", line 8, in <module>
>>>>>>> t = time.localtime(time.time())
>>>>>>>
>>>>>>> AttributeError: 'module' object has no attribute 'localtime'
>>>>>>>
>>>>>>> Python is having problems of execute this line.
>>>>>>>
>>>>>>> t = time.localtime(time.time())
>>>>>>>
>>>>>>>
>>>>>> 1) This is getting offtopic
>>>>>> 2) You need to at least send us the script you're using
>>>>>> 3) There is no way that that line of code doesn't work if you did
>>>>>> `import time` first
>>>>>> 4) You may want to check and IRC channel such as
>>>>>> irc://freenode.net/fedora
>>>>>>
>>>>>>
>>>>> Also, there are several alarm apps already in Fedora, it doesn't seem
>>>>> like you're trying to learn Python, so might be best to just use an
>>>>> already existing app.
>>>>>
>>>>>
>>>>>
>>>>>
>>>> I told you in the beginning I know nothing about Python.
>>>> I'm getting answers that assume, I know what your talking about, I
>>>> don't, I just have a script that I'm asking how it works.
>>>> What are the other scripts that are already in Fedora.
>>>>
>>>>
>>>>
>>> I know nothing about python either..... But the comments of others has
>>> got me to ....
>>>
>>> import time
>>> import os
>>>
>>> not_executed = 1
>>>
>>> while(not_executed):
>>> dt = list(time.localtime(time.time()))
>>> hour = dt[3]
>>> minute = dt[4]
>>> if hour == 5 and minute == 45:
>>> os.popen2("open /Users/jun/shout.mp3")
>>> not_executed = 0
>>>
>>>
>>> I added a "tab" to Lines 7 and 8 as well as a closing ) on Line 7. Note
>>> that blank lines are counted.
>>> Line 11 also has a tab added. Hope that helps...and I hope my
>>> formatting survives.
>>>
>>>
>>>
>
> #!/usr/bin/env python
>
> import time
> import os
>
> not_executed = 1
>
> while (not_executed):
> dt = list(time.localtime(time.time()))
> hour = dt[3]
> minute = dt[4]
> if hour == 22 and minute == 58:
> os.spawnv (os.P_WAIT, "/usr/bin/mpg123", ["mpg123",
> "/home/mp3/Abba/Gold/queen.mp3"] )
> not_executed = 0
>
>
>
If you want something more generic, to be called passing parameters,
such as, "alarm.py 23 15"
#!/usr/bin/env python
import time
import os
import sys
def alarm (h, m):
while (True):
dt = list(time.localtime(time.time()))
hour = dt[3]
minute = dt[4]
if hour == h and minute == m:
os.spawnv (os.P_WAIT, "/usr/bin/mpg123", ["mpg123",
"/home/mp3/Abba/Gold/queen.mp3"] )
break
def main(argv=None):
if argv is None:
argv = sys.argv
if len(argv) < 3:
print "Two arguments are needed."
return 1
else:
if not (argv[1].isdigit() and argv[2].isdigit()):
print "An hour and minute are expected."
return 1
alarm(int(argv[1]),int(argv[2]))
return 0
if __name__=="__main__":
sys.exit(main())
--
Paulo Roma Cavalcanti
LCG - UFRJ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/fedora-list/attachments/20090107/33bde615/attachment-0001.htm>
More information about the fedora-list
mailing list