我在项目中使用OAuth,并且在单独的csv文件中有三组密钥可供访问。有没有办法编写一个函数,每次调用函数时都会访问三个文件中的一个(按顺序,1,2,3,重复)?我能想到这样做的唯一方法是没有全局变量"是我的主要功能中的某种变量将跟踪。但是,我还没有能够通过黑客攻击/ google-fu。
答案 0 :(得分:1)
使用iter在代码的开头创建文件名的迭代器:
names = iter([1,2,3])
print(next(names))
print(next(names))
print(next(names))
1
2
3
或者itertools.cycle:
from itertools import cycle
names = cycle([1,2,3])
print(next(names))
print(next(names))
print(next(names))
print(next(names))
print(next(names))
print(next(names))
1
2
3
1
2
3
在您的函数中,只需使用with open next(names) as f:....
names
包含文件名/路径。
答案 1 :(得分:0)
使用发电机:
def accessInSequence():
while True:
accessFileOne()
yield
accessFileTwo()
yield
accessFileThree()
yield
mySequence = accessInSequence()
mySequence() #file 1
mySequence() #file 2
# ...