On Wed, Jan 7, 2009 at 11:01 PM, Paulo Cavalcanti promac@gmail.com wrote:
On Wed, Jan 7, 2009 at 10:52 PM, Jim mickeyboa@sbcglobal.net wrote:
Ed Greshko wrote:
Jim wrote:
Arthur Pemberton wrote:
On Wed, Jan 7, 2009 at 5:18 PM, Arthur Pemberton pemboa@gmail.com wrote:
On Wed, Jan 7, 2009 at 5:06 PM, Jim mickeyboa@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()) > >
- This is getting offtopic
- You need to at least send us the script you're using
- 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())