只需要一些关于如何设计python脚本文件test.py的说明。关于python脚本文件的说明
定义函数时,他们是否必须在导入后立即进入文件顶部?
我应该这样做main check in my file?
我想在我的服务器上运行这个文件作为cron作业。如果文件变得太大(我也有我的sqlalchemy定义),我怎样才能将文件分解成多个文件?我希望通过将文件放入服务器中的文件夹来轻松部署。
只需要一些关于如何设计python脚本文件test.py的说明。关于python脚本文件的说明
定义函数时,他们是否必须在导入后立即进入文件顶部?
我应该这样做main check in my file?
我想在我的服务器上运行这个文件作为cron作业。如果文件变得太大(我也有我的sqlalchemy定义),我怎样才能将文件分解成多个文件?我希望通过将文件放入服务器中的文件夹来轻松部署。
大多数脚本看起来像下面这样:
import module1
import module2
CONSTANT=...
def foo():
...
def bar():
....
class Baz():
....
def run(verbose=False):
....
if __name__=='__main__':
import optparse
def parse_options():
usage = 'usage: %prog [options]'
parser = optparse.OptionParser(usage=usage)
parser.add_option('-v', '--verbose', dest='verbose',
action='store_true',
default=False,
help="verbose")
return parser.parse_args()
def cli():
opt,args=parse_options()
run(verbose=opt.verbose)
cli()
所以你的脚本的身体主要是由函数/类定义。那里(通常)是非常少的代码不在函数/类定义中。
我会尝试以任何方式将功能分组,以便于组织和可读性。如果您认为某个函数可以在该特定脚本以外的地方重用,请将其放入模块中,然后将该模块导入到该脚本中。
在你的crontab中定义PYTHONPATH
和PATH
。那么你应该没有问题从cron运行你的脚本。
请这样做。首先阅读PEP 8:http://www.python.org/dev/peps/pep-0008/。其次,阅读后,更新你的问题,提及你在PEP-8中不理解的具体内容。这已经在PEP 8中得到了回答。 – 2010-08-01 14:39:51