Неожиданный вывод из скрипта Python CLI - PullRequest
0 голосов
/ 05 июля 2019

Я написал Flask, который повторно использует код из существующего скрипта (сохраняя его СУХОЙ).

Приложение Flask работает хорошо и возвращает значения, как и ожидалось.

Однако при запуске автономного скрипта Python secretkeygenerator.py я не вижу никакого вывода в командную строку.

Python CLI-скрипт

#!/usr/bin/python3

import clipboard # import pyperclip
import random

def secretkeygenerator(): 
    letters=['q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', 'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'z', 'x', 'c', 'v', 'b', 'n', 'm']
    numbers=['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
    symbols=['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '+', '.', '<', '>', '?', '-', '=']

    # The length of the string is 50 
    secret_key_list=random.sample(numbers, 10) + random.sample(numbers, 10) + \
    random.sample(symbols, 10) + random.sample(symbols, 10) + random.sample(letters, 10)

    random.shuffle(secret_key_list)
    secret_key=''.join(secret_key_list)

    with open('secretkey.txt', 'w') as secretkey:
        secretkey.write('Your secret key, also copied to your clipboard is: {0}\n'.format(secret_key))

    return secret_key

    print('Your secret key, also copied to your clipboard is: {0}'.format(secret_key))

    clipboard.copy(secret_key) # pyperclip.copy(secret_key)
    secret_key_clip=clipboard.paste() # secret_key_clip=pyperclip.paste()


if __name__=='__main__':
    secretkeygenerator()

Приложение Flask:

#!/usr/bin/python3

from flask import (
Flask,
render_template,
request,
)

from secretkeygenerator.secretkeygenerator import secretkeygenerator


app=Flask(__name__)


@app.route('/')
def index():
    secret_key=secretkeygenerator()
    return render_template('index.html', secret_key=secret_key)


if __name__=='__main__':
    app.run(debug=True)

При запуске только сценария CLI секретный ключ не печатается на терминале.

Что я не делаю?

Я ожидаю, что секретный ключ будет напечатан на терминале при запуске сценария secretkeygenerator.py, и результатов не будет, несмотря на то, что секретный ключ записан правильно в файл secret.txt.

Myструктура папок:

.
├── app
│   ├── app.py
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── app.cpython-35.pyc
│   │   ├── generatesecretkey.cpython-35.pyc
│   │   ├── __init__.cpython-35.pyc
│   │   └── secretkeygenerator.cpython-35.pyc
│   ├── secretkey.txt
│   ├── static
│   │   └── css
│   │       └── layoutimprovements.css
│   └── templates
│       └── index.html
├── __init__.py
├── __pycache__
│   ├── __init__.cpython-35.pyc
│   └── secretkeygenerator.cpython-35.pyc
├── README.md
├── secretkeygenerator.py
└── secretkey.txt

1 Ответ

0 голосов
/ 09 июля 2019

Я переместил оператор return в конец основной функции. Скрипт теперь работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...