Det är så att jag kollar om stdin är tom och om den är det så avslutas körningen. Funktionen sys.stdin.isatty() som jag använder mig av verkar fungera bra. Såhär ser funktionen ut:
Kod: Markera allt
def checkstdin():
'''Check if stdin is empty.'''
if sys.stdin.isatty():
print 'The stdin is empty. Either the file does not exist or the file is empty.'
sys.exit()
Kod: Markera allt
import optparse
import os
import sys
import cells
import conf
def checkstdin():
'''Check if stdin is empty.'''
if sys.stdin.isatty():
print 'The stdin is empty. Either the file does not exist or the file is empty.'
sys.exit()
def validExtension(imagename):
'''Check whether "imagename" has a valid extension'''
valid = '.jpg'
if imagename.find(valid) != -1:
return imagename
else:
print 'The extension is not valid.'
sys.exit()
def viewdata(option, opt, value, parser):
checkstdin()
print inputdata
def size(option, opt, value, parser):
size = parser.rargs[0].split(',')
conf.height = int(size[0])
conf.width = int(size[1])
def main(inputdata):
parser = optparse.OptionParser()
parser.add_option('-o', '--output', dest='imagename',
help='defines the output-file (the cellmap/image).')
parser.add_option('-v', '--view', action='callback', callback=viewdata,
help='view the stdin.')
parser.add_option('-s', '--size', action='callback', callback=size, dest='size',
help='set the size (height,width).')
(options, args) = parser.parse_args()
if (options.imagename != None):
checkstdin()
imagename = validExtension(options.imagename)
cells.createImg(inputdata, imagename)
else:
print 'This program requires a option.'
if __name__ == '__main__':
inputdata = sys.stdin.read()
main(inputdata)
EDIT: Programmet avslutas heller inte när man "kontaktar" help! alltså: python script.py -h. Jag är tvungen att trycka Ctrl+D då med :S