У меня есть скрипт python, который обновляет значения переменных внутри файла, значения переменных вкраплены, но они должны передаваться во время выполнения с использованием параметров командной строки. Мой код выглядит следующим образом:Как передать значение опции.parser в другую переменную с помощью python?
import subprocess
import time
import sys
import string
from optparse import OptionParser
from optparse import OptionGroup
def main():
usage = "usage: %prog [options]"
parser = OptionParser()
try:
parser = parse_options(parser)
(options, args) = parser.parse_args()
except SystemExit:
return 0
myfile = open('over.tex','r')
data = myfile.readlines()
myfile.close()
val = time.strftime("%d/%m/%Y")
for i in range(len(data)):
test_dict = dict(var_Title = "ABC doc"
, var_Doc = "136"
, var_ECN = "XXXX"
, var_date = time.strftime("%d/%m/%Y")
, var_ProjectName= str(options.project_name)
, var_version = str(options.version))
test_tuple = ('var_Title'
, 'var_Doc'
, 'var_Rev'
, 'var_ECN'
, 'var_date'
, 'var_ProjectName'
, 'var_version'
)
for key in test_tuple:
print test_dict[key]
data[i] = data[i].replace((key), (test_dict[key]))
with open('over.tex', 'w') as file:
file.writelines(data)
if options.project_name:
var = "WELCOME"
if options.version:
print "1.1"
def parse_options(parser):
group = OptionGroup(parser, "Target options","CMake Target properties")
group.add_option("", "--project_name", action="store_true",default=False,dest="project_name",help="Project name")
group.add_option("", "--version", action="store_true",default=False,dest="version",help="Version")
parser.add_option_group(group)
return parser
if __name__ == "__main__":
main()
Теперь, как вы можете видеть, я Пазинг значения в «var_ProjectName» и «var_version» с помощью option.parser, но когда я выполнить его в командной строке как:
myscript.py --project_name --version
в файле против varible PROJECT_NAME и Project_version я получить что-то следующим образом:
Project_name = True
Project_version = True
Но это не то, что я хочу .Я хочу, чтобы следующим образом:
Project_name = WELCOME
Project_version = 1.1
Итак, пожалуйста, помогите, как я могу его получить, и что я делаю неправильно? Я хочу передать значения всем переменным из параметров comandilne только так, что я только пытаюсь использовать две переменные (имя_проекта и версия).
фактически решение которой и предложили в этом мы должны указать значения в командной строке (например, myscript.py --version 1.1), но я не хочу указывать там значение. я хочу, чтобы скрипт принимал значение, указанное в разделе, если option.project_name так же и для версии. Команде пользователю просто нужно ввести myscript.py --project_name --version, которое оно имеет и имеет значения указанных переменных. Как это получить? – Learner
@Learner У меня создается впечатление, что '--welcome-project' в этом ответе решает вашу проблему. Вы можете установить нужное значение с помощью 'const ='. – phihag