sys.stdin 中 readlines() 之后的 input()?

问题描述

我的脚本在 readlines() 上调用 sys.stdin,然后调用 input(),但最后一次调用不起作用。

这是我的脚本:

import click

@click.command()
@click.argument('data',type=click.File())
def inp(data):
    lines = data.readlines()
    print('Read {} lines. Continue?'.format(len(lines)))
    choice = input().lower()
    print("You said '{}'.".format(choice))

if __name__ == '__main__':
    inp()

如果用户在命令行中指定了实际的文件参数,则该脚本可以正常工作,但如果他们通过管道输入数据并使用 - 则不行:

head -n10 data.txt | python3 script.py -  
Read 10 lines. Continue?
Aborted!

我需要支持 - 后跟 input() 的阅读——我怎样才能让它发挥作用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)