为了账号安全,请及时绑定邮箱和手机立即绑定

Python:如何确保程序仅从 sys.stdin 获取文件数据?

Python:如何确保程序仅从 sys.stdin 获取文件数据?

回首忆惘然 2023-08-15 16:57:32
我想使用一个名为simdata.txt运行我用 Python 编写的模拟的文件中的数据。我想确保当用户从命令行执行我的程序时,数据仅通过流馈送sys.stdin。也就是说,我希望我的程序像这样运行:python3 simulation.py < simdata.txt与此相反(通过 sys.argv 而不是 sys.stdin 提供):python3 simulation.py simdata.txt如何确保用户始终以第一种方式而不是第二种方式执行程序?通常我使用以下方法强制执行此规则:if len(sys.argv) > 2:    print("This is not how you use the program. Example of use:")    print("python3 simulation.py < simdata.txt")    exit(1)但这似乎有问题,因为我可能想向我的程序添加额外的标志来改变模拟的行为。也就是说,也许我想这样做:python3 simulation.py < simdata.txt --plot_data有没有更好的方法来确保 simdata.txt 仅通过 stdin 馈送,而不影响我添加额外程序标志的能力?
查看完整描述

1 回答

?
HUX布斯

TA贡献1876条经验 获得超6个赞

事实证明,使用 argparse 模块是更好的答案。这样我就不必对输入有如此严格的要求。



查看完整回答
反对 回复 2023-08-15
  • 1 回答
  • 0 关注
  • 67 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信