【发布时间】:2017-03-23 20:39:28
【问题描述】:
我处理 2 个文件,比如 ba.py 和 2.py
ba.py:
import sys
count = 1 # This is global count
def callme():
pass
# Doing Some operation
2.py
import ba
print ba.count ## This is working fine
ba.callme() ## This is also working fine.
我正在运行这样的自动化工作:
for i in $(find /home/some/SomeElse/HeyMore -type f); do python 2.py $i; done
此命令的作用是从指定文件夹中获取文件并将其作为参数传递给2.py 中的函数。
在内部,我想在 python 中打开文件并执行一些操作。但是,我不想让我的系统超载,所以在 10 个作业之后我想睡 10 秒。我在ba.py 中使用count 维护计数。第一次调用后,应该递增到2,以此类推。
但是,当它达到 10 时,它应该休眠,因为我的逻辑如下所示。
print ba.count
ba.count = ba.count + 1 ## Here increment should happen
if ba.count % 10 == 0:
time.sleep(10)
else:
ba.callme()
每次我运行这个自动化脚本,我只看到1的,并且脚本在10秒后没有休眠。
关于如何解决这个问题有什么建议吗?
【问题讨论】:
-
我观察到的唯一一件事是每次脚本执行完毕时计数被重置为 1。
-
每次您执行
python scriptname时,您都在开始一个新的过程。不保留来自先前过程的变量。如果您需要在脚本运行之间保留数据,则应将其放入文件中。
标签: python django scope automation global