如何在Python脚本中从文件和终端读取输入?
我有一个Python脚本,它使用shell重定向从文件中读取一些数据,例如如何在Python脚本中从文件和终端读取输入?,python,bash,input,io-redirection,Python,Bash,Input,Io Redirection,我有一个Python脚本,它使用shell重定向从文件中读取一些数据,例如 python script.py < input.txt python script.py
python script.py < input.txt
python script.py
处理完文件后,我想允许用户从终端输入一些参数。如何执行此操作?重定向将持续到进程终止。所以你不能做你想做的事。相反,请使用命令行参数指定输入文件,如下所示:
python script.py --input input.txt
使用
argparse
从命令行中选择名称,并像读取普通文件一样读取它。这将使sys.stdin
可以自由地使用input()
做您想要的交互式事情,因为您已经用bash
标记了这个问题,我想我可以说清楚地打开/dev/tty
的诀窍。这通常仅用于询问机密的程序,这些机密不应存在于文件中。但这将允许在使用重定向stdin启动脚本后从终端读取数据
无论如何,除了非常特殊的用例之外,我强烈建议使用命令行参数,允许程序从指定的文件读取,然后正常地从stdin读取。使用
原始输入
,输入
?这就产生了EOFError
。