Использование Optparse и запись вывода в именованные файлы

Я пытаюсь написать скрипт, который будет принимать параметр бета и количество итераций k, а затем печатать "бета" 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 строк

бета = 0,3, это итерация номер 0. бета = 0,3, это итерация номер 1.

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

1 ответ

Решение

Ваш код работает, после замены -iterations от --iterations и называя это так:

python toy_script.py -b0.3 -k20

(проверено на Windows)

Другие вопросы по тегам