[Tutor] Questions about stdin, stdout, lists and tuples
Sheila King
sheila@thinkspot.net
Mon, 08 Jan 2001 13:40:16 -0800
On Mon, 8 Jan 2001 11:29:25 -0500, D-Man <dsh8290@rit.edu> wrote about Re:
[Tutor] Questions about stdin, stdout, lists and tuples:
:On Mon, Jan 08, 2001 at 01:04:14PM -0800, Sheila King wrote:
:| Python newbie, here. I come from a C++/Pascal/VB type of background.
:|
:| My first goal is to write some mail filtering scripts in Python to manage my
:| e-mail spam. My e-mail scripts will be fed the incoming e-mail on stdin and I
:| have to write my e-mails to stdout if I want them to be delivered through my
:| MTA.
:|
:
:It would probably be easier to use procmail for this. (Although the
:syntax for the "recipes" is confusing -- I only use it to put list
:mail in the right folder) You can probably find some non-warranted
:recipes on the web somewhere.
Yes, I can't really figure out how to use procmail on my webhost, and believe
me, I've tried. My web host is fantastic, but uses a proprietary mail system,
and no one has yet figured out how to use procmail, although it is installed.
:| I have a couple of questions I want to ask, just to make sure I'm
:| understanding things clearly:
:|
:| Here is a short practice script I just wrote:
:|
:| -----------------------------------------
:| import sys
:| line = sys.stdin.readline()
:| print line
:| -----------------------------------------
:|
:| It reads a single line from stdin and prints it to stdout.
:|
:| My understanding, is that this is equivalent to the C++ program:
:| ----------------------------------------
:| #include <iostream.h>
:| #include <string.h>
:|
:| int main()
:| {
:| string line;
:| getline(cin,line);
:| cout << line;
:| return 0;
:| }
:| ----------------------------------------
:
:I'm not familiar with the getline() fuction in C++ (I don't recall
:seeing it in my C++ book, but it would have been useful many times).
:If I can assume that it will read all characters on cin until it finds
:a newline and inserts it into the string 'line', then that is the
:same.
Yes, this is what it does. You need to include string.h for this ability. And
it strips the newline character when it does this.
:To duplicate print, you need to add " << endl " to your 'cout' line.
Ah, thanks. The details like this can really much one up later.
:|
:| If anyone would like to confirm/deny/comment on my conclusions about
:| stdin/stdout, I would be interested. Am I overlooking any Python peculiarities
:| (such as the difference between "input" and "raw_input" or something along
:| those lines.)?
:
:Input is (nearly?) equivalent to eval( raw_input() ). It will
:evaluate the input and return the appropriate object (ie, int, list,
:string, etc).
:
:Raw_input doesn't evaluate the input, but returns the raw string for
:you to deal with.
Thanks. Good info.
...<comments about arrays, lists, etc... deleted>...
--
Sheila King
http://www.thinkspot.net/sheila/
http://www.k12groups.org/