Adailson De Castro
Adailson De Castro

Reputation: 871

How do I read a file as the default user input?

How do I read a whole file in python 3.6.x using the user input() function? Like the algorithms challenge sites do. For example:

I guess I need to wrap my python sample progam with another program (possible also python, or OS script) that call the first one passing the file as user input. But how could I do it?

Upvotes: 3

Views: 311

Answers (2)

wim
wim

Reputation: 363486

The usual standard lib tool for this job is the fileinput module:

import fileinput

for line in fileinput.input():
    print(f'working with line {line}')

Then from the shell, take your pick of the following (they all work):

$ python3 my_script.py my_file.txt
$ python3 my_script.py < my_file.txt
$ cat my_file.txt | python3 my_script.py

Upvotes: 2

Shadow
Shadow

Reputation: 9427

Usually such challenges will pipe the input via stdin, and expected the response via stdout.

To do that, run your command from a command line like so;

python program.py < input.txt

If you want to save the output of the script into a file, you can redirect it to one.

python program.py < input.txt > output.txt

Upvotes: 3

Related Questions