完整的新手问题。解析python命令行参数
我正在开发一个使用API搜索电影数据库的类。
这里是你如何让使用电影标题和年份从Python解释器中的查询:
import moviesearch
movie_db = moviesearch.MovieSearch()
result = movie_db.search('Clockwork Orange', year='1971')
print result
这样做特定的查询产生从我使用的服务的一个结果。
为了节省打字测试,我创建了下面的脚本m.py:
from sys import argv
import moviesearch
script, movie_name, params = argv
movie_db = moviesearch.MovieSearch()
result = movie_db.search(movie_name, params)
print result
当我执行这个脚本,像这样:
python m.py 'Clockwork Orange', year='1971'
服务产生两个结果。
所以这意味着当我使用脚本测试类时,我格式化参数的方式有些问题。有人可以告诉我我做错了什么吗?
我不包括查询电影数据库的类,因为我不认为这是解决问题的必要条件。我需要知道的是如何在使用脚本时正确设置参数的格式,以便与上述示例中的操作完全相同,因为我直接从Python解释器使用该类。
在此先感谢您的帮助。
尝试打印出'sys.argv';它可能不是你所期望的。我不确定它在Windows中的具体情况,但在任何'sh'兼容的shell中,它将是'['m.py','Clockwork Orange','year = 1971']'。 – abarnert
PS,问题标题有误导性。在这两种情况下,您都没有写过类,并且在这两种情况下您都使用同一个类('moviesearch.MovieSearch'),所以这不是“类与脚本”。这实际上是关于如何解析命令行参数。 – abarnert
感谢您的提示。改变了标题。 –