python-3.x - 将输入文件发送到使用 getpass 函数的 python 代码
问题描述
假设这段代码是一个简单的 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 代码?
解决方案
我们在执行脚本时将文件名作为参数传递。该脚本将打开传递的文件名并逐行读取内容并将内容作为列表引用。
用户和密码文件:
bash-3.2$ cat /Users/anku/Documents/project/config.txt
user_xyz
user_xyz_pass
bash-3.2$
Python脚本:
#!/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$
希望这可以帮助。祝你好运 !!
推荐阅读
- javascript - 如何在对象中按键和值查找索引(但它的完全对象没有数组)
- python - tkinter 没有名为 tk 的属性
- java - 我怎么解决这个问题?Android Studio 更新错误.. jre/bin/java.exe 不存在
- javascript - 如何在文档字段而不是集合字段向 Firebase 添加数据?
- git - bitbucket - git push、clone、pull 得到错误 500
- android - 如何以编程方式获取月份的特定日期?
- android - 片段中的后退按钮打开并关闭导航抽屉而不是返回
- git - 如何手动推送到另一个仓库一次?
- http - HTTP/1.1 请求可以拆分成多个 TCP 消息吗?
- c++ - 如何在 C++ 中返回一个所有元素都是 1 的二维向量