繁体   English   中英

使用 Python 将无聊的东西自动化第 6 章密码柜

[英]Automate the boring stuff with Python chapter 6 Password locker

#! python3
# pw.py - An insecure password locker program.

PASSWORDS = {'email': 'F7minlBDDuvMJuxESSKHFhTxFtjVB6',
              'blog': 'VmALvQyKAxiVH5G8v01if1MLZF3sdt',
               'luggage': '12345'}

import sys, pyperclip

if len(sys.argv) < 2:
    print('Usage: py pw.py [account] - copy account password')
    sys.exit()

account = sys.argv[1] # first command line arg is the account name

if account in PASSWORDS:
    pyperclip.copy(PASSWORDS[account])
    print('Password for ' + account + ' copied to clipboard.')
else:
    print('There is no account named ' + account)

我真的不知道该怎么办。 在运行 win+r 并输入例如 pw email 后,我只得到'usage:py bla bla bla ..我在win+r中写的什么都没有

bat文件是这样的:

'''call C:\Users\Rostek\anaconda3\Scripts\activate.bat
C:\Users\Rostek\anaconda3\python.exe "C:\Users\Rostek\.spyder-py3\Projekty\pw.py"
@pause'''

我认为我无法通过 arguments。 我已经阅读了所有的互联网,并没有找到这样的东西。 请帮忙。 是书上的程序。 我正在使用 anaconda3。

您可能想考虑一下您的问题应该怎么做。

if len(sys.argv) < 2: print('Usage: py pw.py [account] - 复制账户密码') sys.exit()

这显然做了它应该做的。 您的问题实际上不是关于 python,而是关于 win+r 通过 arguments。

为什么要首先使用 win+r 运行程序?

运行 win+r 并输入例如 pw email ...

您想要的是打开命令行/ powershell/ bash 并直接使用python3 programname.py email将变量传递给您的程序。 如果你想这样做更干净,你应该使用 argparser。

编辑:

在评论中澄清后:

问题是,如果您使用 win+r 执行脚本,您将在几分之一秒内获得输出,然后 cmd 将关闭...

因此,除非您在脚本中指定写入 pw 的位置,否则您将在控制台中拥有它。 它闪烁并立即消失。 因此打开一个控制台并从那里执行程序。 或者您可能想看看这个: Output 到剪贴板

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM