大型Python脚本的正确布局
目前我有一个Python脚本(proofreader.py),它可以帮助我读取一个文本文件,使用几种校对方法进行处理,然后把修改后的内容输出到一个文件中。
不过这个脚本比较长,比如说有超过1000行代码,所以我想把它整理得更好一些,以便将来能更方便地重复使用。
当前结构:proofreader.py
def main(argv)
..
def read_text_file():
def proofreading_method_1():
def proofreading_method_2():
def proofreading_method_3():
..
def common_string_function_1():
def common_string_function_2():
def common_string_function_3():
..
def write_text_file():
有没有人能给这个项目(Proofreader)建议一个合适的布局?
根据这个链接:http://jcalderone.livejournal.com/39794.html,我想出了以下方案:
Proofreader/
|-- bin/
| |-- proofreader (The python script with the .py extension)
|
|-- proofreader/
| |-- test/
| | |-- __init__.py
| | |-- test_main.py
| |
| |-- __init__.py
| |-- main.py
| |-- proofreading.py (class for proofreading methods)
| |-- stringutil.py (class for frequently used string methods)
|
|-- setup.py
|-- README
对上面的建议有什么问题吗?
2 个回答
1
我通常会使用类似的布局。
我觉得唯一重要的区别是,测试模块会放在 Proofreader
下面,而不是放在 Proofreader/proofreader
下面。把测试和代码分开主要是因为你通常只想让其他开发者能看到这些测试,而不想让那些只是想安装你软件的用户看到。
1
考虑使用 distribute 的自动脚本创建功能(可以查看这个链接: http://packages.python.org/distribute/setuptools.html?highlight=entry_points#automatic-script-creation),而不是在 'bin' 目录下单独保存一个 .py 文件。我通常会把测试代码放在模块外面。如果可能的话,把你的 proofreader.py 文件拆分成几个包含不同类的文件。这样做其实是保持代码结构清晰最重要的一点。