I'm been a full Python convert for over a year now. Perl is just too cumbersome at times. I think the artist who draws XKCD has made the same choice. The one thing that still takes me back to Perl is the ultra-handy <> "diamond operator". You can't deny Perl's dominance when it comes to string processing. Look at this elegance:
#!/usr/bin/perl while (<>) { print }
Every time I encounter a string processing problem where I have to work with multiple files, I go back to Perl. I didn't think Python could do this. Python should have the same ability as Perl's diamond:
def diamond(): """ diamond() Pre: Nothing. This is my attempt to recreate the very handy diamond operator found in Perl, which is my only reason for still using that language. To use the code: for line in diamond(): process(line) """ import sys if len(sys.argv[1:]) > 0: for file in sys.argv[1:]: if file == '-': for line in sys.stdin: yield line else: f = open(file, 'r') for line in f: yield line f.close() else: for line in sys.stdin: yield line
What does this do? It checks the sys.argv variable for file names on the command line and iterates through each line of each file. If it can't find a file, it defaults to standard input.
Of course, before I start to write code, I should always use Google first. There exist a module called "fileinput" which does the same thing.
D'oh! Hey... it's practice.
1 comment:
I thought I was going to learn python at the begining of the year. Not had the opportunity yet ;-)
Post a Comment