我有一个python脚本,我称之为重定向到Django $ python manage.py shell < script.py
。
input()
我想从用户那里得到答案来决定做什么。但我无法使用sys.stdin.readline()
或answer = input('A question')
if answer == 'y':
# Do something
else:
pass
。
使用input()
EOFError: EOF when reading a line
错误:
answer = sys.stdin.readline()
if answer == 'y':
# Do something
else:
pass
使用sys.stdin.readline:
{{1}}
在这种情况下,脚本会继续而无需等待用户输入。
这样做的正确方法是什么?
答案 0 :(得分:2)
您正在使./manage.py shell
获得一些输入,但您提供的输入是script.py
的内容。
编写自定义Django management command会更好。例如:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
def handle(self, *args, **options):
answer = input('A question')
if answer == 'y':
# Do something
else:
pass
然后使用manage.py my_script
调用。