如何分割Python文件?

时间:2019-01-10 20:18:22

标签: python

我正在用Python构建一个CLI网络抓取应用程序,该应用程序应该为股票交易者收集数据。它应该执行以下操作:

  • 调用Reddit的API以获取有关股票的新闻。
  • 调用Twitter的API以获得有关股票的推文。
  • 调用Yahoo的API以获取有关股票的价格数据。
  • 致电Google趋势以获得股票的“随时间推移而受欢迎”。

这些动作中的每个动作都有其自身的含义。同样,所有这些操作都将由CLI触发。

对我来说有意义的是,每个动作将被构造在一个单独的.py文件中,每个文件可能只有一个类。

然后在main.py中将具有一个CLI类,该类可根据用户的标志和参数启动其他类。

  • 我的逻辑在这里正确吗?
  • 我还应该考虑什么?
  • 我应该在哪些目录中包含这些文件,我应该拥有哪些其他目录?

1 个答案:

答案 0 :(得分:0)

您的整体方法是明智的;但很难在没有看到实际代码的情况下进行判断。

对于小型应用程序,将所有内容都放在一个源文件中没有任何问题。随着应用程序的增长,如果它通过多个源文件或多个单独导入的模块来帮助您组织和读取代码,那是一件好事。但是,Python中没有任何内容可以指示何时(或是否)进行过渡。

要考虑的其他事项:

  • 您可以使用正确的CLI库来简化生活。火(https://github.com/google/python-fire)是很好的工具,它可以自动执行很多操作。您可能会发现将所有类都放在一个文件中,或者只是将所有类导入到主文件中,就会为您提供良好的基本CLI。

  • 如果您的CLI更加复杂,请查看Click(https://click.palletsprojects.com/en/7.x/

  • Python处理项目结构内的导入的方式并不明显。这取决于您如何调用模块/脚本(例如,在通过@types/reactpython -m MODULE语句运行模块时有效的导入)在通过{{ 1}}。在短篇文章中很难对此进行总结,但是它要求您了解如何将代码打包为脚本,模块,可单独安装的软件包;并要求您注意如何执行代码。当您刚接触Python环境时,这通常很难学习。建议您阅读诸如({https://click.palletsprojects.com/en/7.x/)之类的教程。