python CLI脚本的意外输出

时间:2019-07-05 08:29:12

标签: python flask command-line

我写了一个Flask,它可以重复使用现有脚本中的代码(保持DRY)。

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文件,但没有任何结果。

我的文件夹结构:

.
├── 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 :(得分:0)

我将return语句移到了主函数的底部。该脚本现在可以工作了。