Question

stdin_example.py to read from standard input

Where do I enter the code as displayed in the stdin example? Do I enter this code as a separate python file, or do I put on top of my program code, or maybe at the end of my program code? One of the code examples is:

import sys
for line in sys.stdin:
    if 'Exit' == line.rstrip():
        break
    print(f'Processing Message from sys.stdin *****{line}*****' )
print("Done")

This is one of the codes, so where do I place this code. Thank you.

Show comments

Submit an answer


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Sign In or Sign Up to Answer

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

Bobby Iliev
Site Moderator
Site Moderator badge
January 15, 2025

Hey! 👋

The code you shared is designed to read input from standard input, typically used when you want your program to process input provided through the terminal or piped from another program.

Here’s how you can run it:

  1. Save the code in a new Python file, for example, stdin_example.py:

    import sys
    for line in sys.stdin:
        if 'Exit' == line.rstrip():
            break
        print(f'Processing Message from sys.stdin {line}')
    print("Done")
    
  2. Open your terminal and run the script:

    python3 stdin_example.py
    

    Now, you can type input directly. The script will keep processing your input until you type Exit and press Enter.

Let me know if that helps!

- Bobby

KFSys
Site Moderator
Site Moderator badge
January 15, 2025

Heya,

If this functionality is a core part of your program, you can save the code in a separate Python file (e.g., stdin_reader.py) and run it independently. For example:

python stdin_reader.py

When running the script, you can then provide input to it via the terminal, piping, or redirection. For example:

  • Typing input interactively in the terminal:
python stdin_reader.py

Then type:

Hello
World
Exit

Using a file as input:

cat input.txt | python stdin_reader.py

At the Beginning of Your Program

If processing input from stdin is an initial step in your program, you can place the code at the beginning of your main script. For example:

import sys

# Handle stdin input
for line in sys.stdin:
    if 'Exit' == line.rstrip():
        break
    print(f'Processing Message from sys.stdin *****{line}*****')
print("Done")

# Rest of your program logic
print("Starting main program logic...")
# Your program code here

This way, the input is processed first, and then the main logic of your program runs.

At the End of Your Program

If stdin processing is only needed after other parts of your program have executed, you can place it at the end of your script. For example:

# Other program logic
print("Performing some initial calculations...")
# Your program logic here

# Handle stdin input
import sys
for line in sys.stdin:
    if 'Exit' == line.rstrip():
        break
    print(f'Processing Message from sys.stdin *****{line}*****')
print("Done")

Integrated Into Your Program Logic

If the functionality is part of a larger program, you might want to modularize it into a function:

def process_stdin():
    import sys
    for line in sys.stdin:
        if 'Exit' == line.rstrip():
            break
        print(f'Processing Message from sys.stdin *****{line}*****')
    print("Done")

# Call the function where needed in your program
if __name__ == "__main__":
    # Example placement
    process_stdin()
    print("Continuing with the rest of the program...")
  • Standalone script: If this is all your program does, save it in a file and run it independently.
  • Beginning of the program: Use it first if the input is necessary for subsequent logic.
  • End of the program: Use it last if you need it after all other logic has executed.
  • Modularized function: Use this if you want flexibility to call it from anywhere in your program.

Become a contributor for community

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

DigitalOcean Documentation

Full documentation for every DigitalOcean product.

Resources for startups and SMBs

The Wave has everything you need to know about building a business, from raising funding to marketing your product.

Get our newsletter

Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.

New accounts only. By submitting your email you agree to our Privacy Policy

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.