我是python的新手,使用命令行参数或在python中切换。我正在尝试编写此代码,该代码生成用于创建目录的基本路径。我的代码:
import os
import uuid
import datetime
from datetime import date
import subprocess
import sys
today = date.today()
currenttime = ('JT'+datetime.datetime.now().strftime("%H%M%S"))
currentday=('JD'+str(today.day))
currentyear=('JY'+str(today.year))
#param1=sys.argv[1]
step4='dataprep'
source_folder = input('enter existing dir path: ')
if os.path.isdir(source_folder):
dir_path = source_folder
else:
dir_path = os.path.join('root/PnG/bd_proc01/',step4,currentyear,currentday,currenttime, \
'{}'.format(str(uuid.uuid1())))
os.makedirs(dir_path)
print(dir_path)
#converting dir_path to test
test=dir_path.replace("/", "_")
print(test)
所以我的问题是如何使用命令行开关生成相同的路径,通过运行下面的脚本而不是像我在脚本中那样传递它们?而且如果提供而不是生成一个,脚本应该能够查找现有路径。
pngbdp_step1_upload.py -a root -b test -c bd_proc01 -d uploadout_dataprepin -p JY2017/JD331/JT231450/UUID_b3983ebc-d3c9-11e7-ae72-000d3a0097c5 -x /mnt/localjobfiles/filesnfolderstoupload.txt
或者有人可以通过在命令行中运行这样来帮助我生成基本路径。
如果我的问题含糊不清,请道歉......
THX,
yaar7002
答案 0 :(得分:0)
我认为你正在寻找模块argparse。它允许您解析为脚本提供的命令行参数。有关详细信息,请访问https://docs.python.org/3/library/argparse.html。这总结了一切。 以下是文档中的示例代码: import argparse
parser = argparse.ArgumentParser(description='Process some integers.') # just some nice feature
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator') #add posibility for argument
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)') #add flag
args = parser.parse_args()
print(args.accumulate(args.integers))
答案 1 :(得分:0)
您正在寻找argparse
模块。您可以使用它来解析命令行参数。文档中有很多很好的例子。