我正在使用基于"术语"运行搜索的API(Yelp'和#34;位置。"我想用我写入第一个脚本的另一个脚本替换一个位置列表。我已经能够弄清楚如何导入文件并使用if __name__ == '__main__':
运行它们但是,我意识到我并没有真正尝试在另一个文件中使用这些功能......我试图尝试只需替换位置。我该怎么做?
这是我到目前为止所拥有的。这是我在python文件中使用的代码片段" A" :
DEFAULT_TERM = ''
DEFAULT_LOCATION = 'San Francisco, CA'
DEFAULT_OFFSET = 0
DEFAULT_SORT = 2
(这里有很多代码)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-q', '--term', dest='term', default=DEFAULT_TERM,
type=str, help='Search term (default: %(default)s)')
parser.add_argument('-l', '--location', dest='location',
default=DEFAULT_LOCATION, type=str,
help='Search location (default: %(default)s)')
if __name__ == '__main__':
main()
然后在我的另一个文件(B)中:
locations = ['SF', 'NY', 'etc']
import sample
sample.main()
我被卡住了!在文件B中调用sample.main()
并不会将这些位置替换为" DEFAULT LOCATIONS"在文件A中(我意识到另一种方法是制作"位置"作为add_argument
位置的一部分,但我认为将它们替换为DEFAULT LOCATIONS会更容易。)我能做到这一点吗?
答案 0 :(得分:0)
通常,您的main()
函数在解析命令行参数以执行实际作业后调用search(term, locaction)
。如果没有,则修改它以执行此操作。然后,在您的另一个脚本中,import yelp
并调用yelp.search()
函数(为了清楚起见,我已将sample
重命名为yelp
:
import yelp
result = yelp.search(term, locations)
如果您无法修改sample.py
文件,则可以设置sys.argv
来模拟所需的命令行:
import sys
import sample
sys.argv[1:] = ['-q', term, '-l', location]
sample.main()