包括一个.py文件,仍然没有破坏cronjob(Python,初学者)?

时间:2011-08-15 09:20:32

标签: php python include cron

我正在构建一个服务,它有几个运行的cronjobs,用Python编写。但是,这是我的第一个Python项目,所以我还是一个非常初学者。

我现在正在做的是,我在每个文件上处理数据库连接,所以基本上如果我想更改主机,我需要查看所有文件。我现在正在研究一种PHP - include()类似于Python的方法,因此我可以包含一些常规内容而不是复制粘贴。

此外,Python文件是在cronjob中运行的,因此该方法也适用于cronjobs:)

3 个答案:

答案 0 :(得分:3)

如果它只是单个数据库连接的几个设置,只需将其放入Python模块并将其导入所有文件即可。为什么要添加任何不需要的复杂性?

如果它更复杂,请使用ConfigParser作为@AdamMatan建议。

# dbconfig.py
host = '127.0.0.1'
user = 'stack'
password = 'overflow'

# db.py

import dbconfig
print dbconfig.host
print dbconfig.user
print dbconfig.password

答案 1 :(得分:1)

使用外部configuration file,其中包含数据库连接(主机,名称,密码,数据库,...),并从Python脚本中读取配置文件。

这使得更改变得容易(即使对于非程序员也是如此)并且很好地符合Single Choice Principle

示例:

db.cfg

[db]
host=127.0.0.1
user=stack
password=overflow

db.py

import ConfigParser

config = ConfigParser.ConfigParser()
config.readfp(open('db.cfg'))

print config.get('db', 'host')

执行结果:

127.0.0.1

答案 2 :(得分:0)

如果你需要致电__import__(),那你就错了。

需要refactor您的代码,以便您不再拥有分散在整个代码库中的数据库连接例程。是的,将这些细节放在配置文件(+1 @Adam Matan)中会更好,但首先需要消除重复。从长远来看,这将为您带来痛苦的世界。