python пользовательский ввод в функцию - PullRequest
0 голосов
/ 08 марта 2020

У меня есть 2 функции, одна из которых загружает и подготавливает данные к тесту

, а другая выполняет тест, который читает файл как тест и генерирует

второй файл в качестве результата теста

что я хочу сделать, это ввести пользовательский файл вместо файла и затем выполнить тест

первая функция:

def load_test_data(source, X_word_to_ix, max_len):
    f = open(source, 'r')
    X_data = f.read()
    f.close()
    X = [text_to_word_sequence(x)[::-1] for x in X_data.split('\n') if 0 < len(x) <= max_len]
    for i, sentence in enumerate(X):
        for j, word in enumerate(sentence):
            if word in X_word_to_ix:
                X[i][j] = X_word_to_ix[word]
            elif word in X_word_to_ix is None:
                X[i][j] = None
            else:
                X[i][j] = X_word_to_ix['UNK']
    return X

вместо В источнике должен быть пользовательский ввод

вторая функция:

if len(saved_weights) == 0:
    print("The network hasn't been trained! Program will exit...")
    sys.exit()
else:
    X_test = load_test_data('test.txt', X_word_to_ix, MAX_LEN)
    X_test = pad_sequences(X_test, maxlen=X_max_len, dtype='int32')
    model.load_weights(saved_weights)

    predictions = np.argmax(model.predict(X_test), axis=2)
    sequences = []
    for prediction in predictions:
        sequence = ' '.join([y_ix_to_word[index] for index in prediction if index > 0])
        print(sequence)
        sequences.append(sequence)
    np.savetxt('test_result', sequences, fmt='%s')

теперь понятно, я хочу, чтобы пользователь вводил данные вместо чтения файла как ввод и генерировал файл как вывод

я хочу получить входные данные от пользователя и дать и выводить не в файл

Ответы [ 2 ]

1 голос
/ 08 марта 2020

Ваш вопрос очень неясен и включает в себя ваш вывод желаний. Используйте tkinter для всплывающего диалогового окна для пользовательского ввода. Передайте аргумент второй функции.

Используйте класс, так как у вас есть несколько функций. Насколько я понимаю, вы хотите, чтобы первая функция для чтения файла была правильной? Следовательно, вы должны использовать диалоговое окно для пользователя, чтобы вставить ввод, используя tkinter или просто запрос пользовательского ввода, вы можете использовать input('Please insert: ')

Вы можете передать ввод своей функции.

1 голос
/ 08 марта 2020

Ваш вопрос неясен, но, насколько я понимаю, вы хотите получить данные от терминала (пользователя) в качестве имени файла или чего-либо, что вы хотите ввести, вы можете использовать системные аргументы. Для этого сделайте следующее:

import sys
filename=sys.argv[0]
print("arguments I want to pass:", filename)

Вы можете добавить большее количество аргументов, изменив число в argv, как sys.argv [1]. При запуске файла используйте:

python file.py arg1, arg2
...