Использование Optparse и запись вывода в именованные файлы - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь написать скрипт, который будет принимать параметр бета и количество итераций k, а затем выводить "beta" k раз.

Я хочу иметь возможность указать бета и k в командной строке, а затем запустить этот скрипт оттуда.Я использовал optparse следующим образом:

import io
from optparse import OptionParser

parser = OptionParser()
parser.add_option("-b", "--beta",type="float", dest="input_parameter")
parser.add_option("-k", "-iterations",type="int",dest="number_of_iterations")

(options, args) = parser.parse_args()

Beta = options.input_parameter
K = options.number_of_iterations

with io.open("output_when_beta_equals_{0}.txt".format(Beta), "a") as f:
    for i in range(K):
        f.write(u"beta = {0}, this is iteration number {1}.".format(Beta, i))

Затем я пытаюсь запустить

python toy_script.py -b $"0.3" -k $20

из командной строки, а затем файл «output_when_beta_equals_0.3.txt» заканчиваетсядо пустого.

Я пытаюсь выяснить, что мне нужно сделать, чтобы исправить это, чтобы вместо этого я получил 20 строк

beta = 0.3, это номер итерации 0. beta = 0.3, этономер итерации 1.

.... и т. д. в выходном файле.

1 Ответ

0 голосов
/ 08 июня 2018

Ваш код работает после замены -iterations на --iterations и вызова его следующим образом:

python toy_script.py -b0.3 -k20

(протестировано в Windows)

...