首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Flask-Script / Python读取标准输入

使用Flask-Script / Python读取标准输入
EN

Stack Overflow用户
提问于 2015-08-19 07:44:03
回答 1查看 514关注 0票数 3

现在我有一个flask-script命令,它接受一个路径作为参数,然后从路径中读取:

代码语言:javascript
复制
@manager.option('-f', '--file', dest='file_path')
def my_command(file_path):
     open(file_path)
     ...

我希望它也能从标准中读取。(我经常需要将剪贴板上的文本传递给它,每次都必须创建一个文件,这很烦人。)

我如何才能做到这一点呢?

我试过通过这个https://stackoverflow.com/a/1454400/1164573使用fileinput.input(),它是用以下代码调用的:

代码语言:javascript
复制
cat << EOF | ./manage.py my_command
abc
def
ghi
EOF

但是fileinput.input()是空的。这是因为flask-script包装了我的函数,而不是直接向它公开标准吗?我怎么才能避免这个问题呢?

EN

回答 1

Stack Overflow用户

发布于 2015-08-19 08:03:05

您可以像您的示例一样执行此操作,但使用进程替换而不是管道:

代码语言:javascript
复制
./manage.py my_command <(cat <<EOF
abc
def
ghi
jkl
EOF
)

适用于我的简单测试。。。假设您的shell至少使用bash。我只使用bash,所以不知道这种语法是否适用于其他shell。

或者,您可以测试filename的值,以获得一个特殊值,通常是-,如果这是要读取的文件的名称,则使用sys.stdin

代码语言:javascript
复制
if(sys.argv[1] == '-'):
    f = sys.stdin
else:
    f = file(sys.argv[1])

for line in f:
    print line

以此类推

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32084321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档