您好我正在尝试自动生成PDF,我已经创建了一个生成所需PDF的python脚本但是为了生成它我必须从命令行调用my_cover.py -s "Atsumi" -t "GE1.5s" -co "Japan"
。
有没有人知道从我的python脚本中调用此命令行的简单方法。在脚本中,我将提示用户输入3个字符串,这些字符串当前是" Atsumi"," GE1.5s"和"日本"但是这些应该随着用户输入而改变,因此也应该在命令行调用中改变。非常感谢任何帮助
site_name = raw_input('Name of wind turbine site: ')
turbine_name = raw_input('Name of turbine type: ')
country_name = raw_input('Name of country location: ')
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--site')
parser.add_argument('-t', '--turbine')
parser.add_argument('-c', '--country')
args = parser.parse_args()
with open('cover.tex','w') as f:
f.write(content%args.__dict__)
cmd = ['pdflatex', '-interaction', 'nonstopmode', 'cover.tex']
proc = subprocess.Popen(cmd)
proc.communicate()
retcode = proc.returncode
if not retcode == 0:
os.unlink('cover.pdf')
raise ValueError('Error {} executing command: {}'.format(retcode, ' '.join(cmd)))
os.unlink('cover.tex')
os.unlink('cover.log')
"Code to run the command line goes here"
'''my_cover.py -s "Atsumi" -t "GE1.5s" -co "Japan"'''
答案 0 :(得分:0)
docopt是一种编程程序接口的好方法,但它会鼓励像cover.py --country=Japan --site=Atsumi --turbine=GE15.s
这样的语法(如果你想要标志)。
根据我的经验docopt
让您重新思考您的计划意识形态,它的作用以及如何实现这一目标。例如,您可以尝试使用
cover.py cover.pdf --country=Japan --site=Atsumi --turbine=GE15.s
cover.py Japan Atsumi GE15.s
看来你的pdf gerenation得到了照顾,但我也建议:
raw_input()
,如果可以的话 - 你正在使用命令行args if __name__ == '__main__':