如何通过导入增加另一个脚本中的变量?
How to increment a variable in another script through importing?
我处理 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 秒后没有休眠。
关于如何解决这个问题有什么建议吗?
2.py
是每个文件的 运行,并且不知道在前一个 运行 中设置的计数器。一种解决方案是仅 运行 2.py 一次并通过管道输入您要处理的文件:
import sys
import time
def callme(filename):
print filename
for count,line in enumerate(sys.stdin):
if count and not(count % 10):
print('sleeping')
time.sleep(1) # I got bored.... make that 10
callme(line.strip())
你的脚本变成了
find /home/some/SomeElse/HeyMore -type f | python 2.py
如果您不想 find
闲逛抽取数据,您可以一次拉取所有文件然后处理它们
filenames = [line.strip() for line in sys.stdin.readlines()]
...
我处理 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 秒后没有休眠。
关于如何解决这个问题有什么建议吗?
2.py
是每个文件的 运行,并且不知道在前一个 运行 中设置的计数器。一种解决方案是仅 运行 2.py 一次并通过管道输入您要处理的文件:
import sys
import time
def callme(filename):
print filename
for count,line in enumerate(sys.stdin):
if count and not(count % 10):
print('sleeping')
time.sleep(1) # I got bored.... make that 10
callme(line.strip())
你的脚本变成了
find /home/some/SomeElse/HeyMore -type f | python 2.py
如果您不想 find
闲逛抽取数据,您可以一次拉取所有文件然后处理它们
filenames = [line.strip() for line in sys.stdin.readlines()]
...