我正在编写一个 django 命令,它需要大量输入并对其进行处理。
由于数据量大,输入应该以文件或标准输入的形式出现,这似乎很自然。
我想轻松地测试它,我的意思是轻松地,而不必在我的测试环境中创建一堆文件。
现在,我记得某处(找不到正确的文档,但我确实找到了“PR”),“-”应该从标准输入读取,但我无法让它工作。
似乎该命令应该执行以下操作:
class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument("foo", type=file)
def handle(self, *args, **options):
file = options["foo"]
# Then read the file, and process it
但是当我在命令行上运行命令时,它不喜欢-
参数(说它不是文件)。
命令文档建议写入以self.stdout
进行更好的测试。我尝试了类似的东西,self.stdin
但也无法让它发挥作用。
当然这是一种常见的模式,但我找不到任何关于如何做到最好的帮助。似乎“应该有一种——最好只有一种——明显的方法。”,但我找不到。有什么我想念的吗?