如何通过导入增加另一个脚本中的变量?

2024-03-28 13:51:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我处理两个文件,比如说营业执照和2.py

营业执照:

import sys

count  = 1 # This is global count

def callme():
    pass
    # Doing Some operation

2.py

^{pr2}$

我正在运行一个自动化的工作,像这样:

for i in $(find /home/some/SomeElse/HeyMore -type f); do python 2.py $i; done

此命令的作用是从指定文件夹中获取文件,并将其作为参数传递给2.py中的函数。在

在内部,我想用python打开文件并执行一些操作。但是,我不想让我的系统过载,所以在做了10次工作后,我想睡10秒钟。我使用countba.py中维护计数。在第一次调用它之后,它应该递增到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秒后没有休眠。在

关于如何解决这个问题有什么建议吗?在


Tags: 文件pyimport脚本isdefcountsys
1条回答
网友
1楼 · 发布于 2024-03-28 13:51:49

为每个文件运行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())

你的剧本变成了

^{pr2}$

如果您不想让find到处乱抽数据,可以一次将这些文件全部拉入,然后处理它们

filenames = [line.strip() for line in sys.stdin.readlines()]
...

相关问题 更多 >