0x90
0x90

Reputation: 40982

How to read and check stdin/stdout in python?

We have this good answer for how to read stdin.

  1. But I don't understand how do I run the python code so it will read from a file as stdin?
  2. Is print is like stdout?

I ask it cause I saw this order in facebook demo puzzle:

NOTE: You need to write the full code taking all inputs are from stdin and outputs to stdout If you are using "Java", the classname is "Solution"

Upvotes: 2

Views: 2383

Answers (2)

Donald Miner
Donald Miner

Reputation: 39893

When you are reading from stdin, you have three basic options:

  • type stuff manually:

    $ python hello.py
    asfasfasf
    asfasfasfasfasf
    <TYPE CONTROL-D TO END STREAM>
    
  • Using <:

    $ python hello.py < inputfile.txt
    
  • Using the output from a previous command:

    $ cat inputfile.txt | grep oranges | python hello.py
    

All three of these will give you input via stdin.


After editing your question, you are no longer asking the same question. Here is the answer to your new questions:

  1. You can do sys.stdin = open('inputfile.txt') to have the input file look like stdin. Make sure this is what you want. From your homework prompt, it sounds like my above solution is what you want.
  2. print writes to stdout.

Upvotes: 6

Greg Hewgill
Greg Hewgill

Reputation: 993163

If you want to run code so that a file is read from stdin (instead of from an interactive terminal), then use redirection.

python program.py <input_file.txt

The < means the named file will be attached to stdin when the script is run. This syntax is the same on Windows, MacOS, and Unix-like platforms.

Upvotes: 2

Related Questions