我正在创建一个脚本,可以自动从bandcamp购买下载和重命名专辑到我的服务器。现在我将sys.argv传递给脚本,如
python script.py Artistname Albumname Year DownloadLink Genre
然后在脚本中我设置了像
这样的变量artist = sys.argv[1]
album = sys.argv[2]
year = sys.argv[3]
link = sys.argv[4]
genre = sys.argv[5]
do commands with these vars
现在我想使用argparse而不是使用一些帮助命令。我已经阅读了关于它的python文档,但我似乎无法让它工作..任何帮助?
答案 0 :(得分:1)
您尚未指定实际问题。话虽这么说,我更喜欢在函数中定义我需要的args。
import argparse
def cli_args(self):
parser = argparse.ArgumentParser(
description='This is an example')
parser.add_argument('--arg1', dest='agr1', required=True,
help='the first arg. This is required')
parser.add_argument('--arg2', dest='agr2',default=0,
help='another arg. this will default to 0')
# return dictionary of args
return vars(parser.parse_args())
答案 1 :(得分:0)
尝试使用click.pocoo.org并不介意使用argparse。
用于自我记录的使用示例(如> python script.py --count 3 --name Nikolay一样启动):
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings.')
@click.option('--name', prompt='Your name',
help='The person to greet.')
def hello(count, name):
"""Simple program that greets NAME for a total of COUNT times."""
for x in range(count):
click.echo('Hello %s!' % name)
if __name__ == '__main__':
hello()
如果您想要完全在主题中撰写的内容,请尝试使用@ click.argument而不是选项。
答案 2 :(得分:0)
我试过这个
def main():
parser = argparse.ArgumentParser(description='xxxx', prog='xxxx')
parser.add_argument('artist', help='Artist name, separted by "_". Ex: The_Beatles')
parser.add_argument('album', help='Album title, separated by "_". Ex: The_Joshua_Tree')
parser.add_argument('yar', help='Release year')
parser.add_argument('url', help='Bandcamp download url inside bracelets.')
parser.add_argument('genre', help='Album genre, separted by a point. Ex: hip.hop')
args = parser.parse_args()
main()
然后在我的脚本中
release = ("%s - %s - (%s) - [FLAC]"%(artist,album,year)).replace('_',' ')
如果我用
运行脚本 script.py Artist Album Year URL Genre
它给我一个错误,即未定义全局名称释放。错误在哪里?如果我跑
script.py -h
我对所有位置参数和帮助都有正确的帮助..