[英]send an input file to a python code which is using getpass function
假设这段代码是一个简单的python代码,可以获取用户名和密码:
from getpass import getpass
user = getpass(" enter username :")
pass = getpass(" enter password ")
print("user = ", user)
print("pass = ", pass)
此外,假设我们有一个名为 input 的文件,其中包含:
我的用户名
我的密码
我想将此文件作为 bash 中 python 代码的输入发送:
但这条指令不起作用:
python3 get_user_pass.py < input
这是因为使用了 getpass 函数,如果我们使用 input 而不是 getpass,它将正常工作。 我们如何将输入文件从 bash 发送到我们使用 getpass 的 python 代码?
getpass()
读取表单 /dev/tty 并且根据定义需要一个交互式 shell。 它不会从 stdin(或任何与此相关的文件)读取输入。
getpass
函数用于隐藏输入回声。 无论如何,将文件流重定向到输入不会显示回声。
我们在执行脚本时将文件名作为参数传递。 该脚本将打开传递的文件名并逐行读取内容并将内容作为列表引用。
用户和密码文件:
bash-3.2$ cat /Users/anku/Documents/project/config.txt
user_xyz
user_xyz_pass
bash-3.2$
蟒蛇脚本:
#!/usr/bin/python
import sys
file_name = str(sys.argv[1])
print (file_name)
file = open(file_name, 'r')
content = file.read()
paths = content.split("\n")
user = str(paths[0])
password = str(paths[1])
print("user = ", user)
print("pass = ", password)
执行 Python 脚本:
bash-3.2$ python /Users/anku/Documents/project/usr_pass.py /Users/anku/Documents/project/config.txt
/Users/anku/Documents/project/config.txt
user = user_xyz
pass = user_xyz_pass
bash-3.2$
希望这可以帮助。 祝你好运 !!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.