繁体   English   中英

将输入文件发送到使用 getpass 函数的 python 代码

[英]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.

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