<p>我喜欢<a href="https://gehrcke.de/2014/02/distributing-a-python-command-line-application/" rel="nofollow noreferrer">this blog</a>中建议的项目结构。我用存根文件<a href="https://github.com/SyntaxRules/python-starter" rel="nofollow noreferrer">here</a>在自己的github repo中复制了它。下面是它的样子:</p>
<pre><code>cmdline_bootstrap/
├── docs
├── test
├── bootstrap
│ ├── __init__.py
│ ├── __main__.py
│ ├── bootstrap.py
│ └── stuff.py
├── bootstrap-runner.py
├── LICENSE
├── MANIFEST.in
├── README.rst
└── setup.py
</code></pre>
<p>这样的结构允许将文件夹<code>bootstrap</code>打包并作为库或命令行应用程序分发。将测试文件夹放在主模块之外可以方便地使用<code>python setup.py test</code>进行测试。将doc文件夹放在主模块之外,github可以轻松地在github页面上自动部署文档。在</p>
<p>对于您的特定项目,我可以在引导文件夹中执行以下操作:</p>
^{pr2}$
<p>我建议按意图组织文件夹。例如,一个文件夹包含处理对文件系统读/写的所有文件。另一个文件夹可能具有您正在使用自动化应用程序尝试的所有不同优化功能。当然,你需要更多的文件夹。在</p>
<p>与您的例子相反,我认为每个文件夹应该包含大约5个文件。1个文件意味着你真的不需要文件夹。10个文件意味着你的文件夹的意图可能是广泛的当前应用程序。在</p>
<p>编辑:</p>
<p>另请注意,<a href="https://www.python.org/dev/peps/pep-0008/#package-and-module-names" rel="nofollow noreferrer">PEP 8 recommends the following for folder naming</a>:</p>
<blockquote>
<p>Modules should have short, all-lowercase names. Underscores can be
used in the module name if it improves readability. Python packages
should also have short, all-lowercase names, although the use of
underscores is discouraged.</p>
</blockquote>
<p>使用本指南<code>class_a.py</code>优于<code>classA.py</code>。对于文件夹,<code>file_readers</code>优先于<code>fileReaders</code>。在</p>