Converting from perl
sp00fD
sp00fD at yahoo.com
Tue Aug 24 13:14:55 EDT 1999
I'm converting to python from perl and just created my first python
program, it's actually a rewrite of a perl program that I had. It's
kind of stupid, but I find rewriting things in other languages is one of
the best ways to learn. What I'd like is for someone to tell me what's
screwed up and what I need to work on. The majority of the script is
held in a class, but being a newbie to the world of OOP also, I'm not
sure if the way I've handled things is optimal, so _any_ suggestions
would be appreciated, as well as any "Why the hell did you create a
class that way"'s or "You're all screwed up, you need to change
this.."'s. Anyway, here it is...
<PRE>
#!/usr/bin/env python
import sys
import os
class CopyClass:
def __init__(self):
self.hosts = ()
self.src = None
self.dst = None
def usage(self):
print """Usage: %s -p [preset]
where preset =
AIX : athena dev detroit la laredo
miami newark sat savannah
seattle titan
SUN : eclipse hercules scdev
scprod sol
BACKUP : athena eclipse hercules
scdev scprod sol xena
OTHER : You choose""" % sys.argv[0]
def args(self):
import getopt
_ok = 1
try:
opts, args = getopt.getopt(sys.argv[1:], 'p:')
except getopt.error:
_ok = 0
if not _ok or len(args) != 2:
self.usage()
sys.exit(1)
for o, a in opts:
if o != '-p':
self.usage()
sys.exit(1)
_preset = a
return _preset
def files(self):
if os.path.isfile(sys.argv[3]):
self.src = sys.argv[3]
self.dst = sys.argv[4]
if self.src and self.dst:
return(self.src, self.dst)
else:
self.usage()
sys.exit(1)
def ask_for_hosts(self):
import string
self.hosts = string.splitfields(raw_input("Enter hosts:
"))
return self.hosts
def get_hosts(self):
if self.args() == "AIX":
self.hosts = ("athena", "dev", "detroit", "la",
\
"laredo", "miami", "newark",
"sat", \
"savannah", "seattle", "titan")
elif self.args() == "SUN":
self.hosts = ("eclipse", "hercules", "scdev", \
"scprod", "sol")
elif self.args() == "BACKUP":
self.hosts = ("eclipse", "hercules", "scdev", \
"scprod", "sol", "athena")
else:
self.hosts = self.ask_for_hosts()
return self.hosts
def copy(self):
_stuff = ()
_stuff = self.files()
try:
for host in self.get_hosts():
print "Sending %s to %s %s" % \
(_stuff[0], host, _stuff[1])
os.system("rcp %s %s:%s" % \
(_stuff[0], host, _stuff[1]))
except os.error:
print "Error during system() function - oops"
c = CopyClass()
c.copy()
</PRE>
Hope that PRE works
thanks
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.
More information about the Python-list
mailing list