TypeError: a bytes-like object is required, not 'str' using Subprocess python
TypeError: a bytes-like object is required, not 'str' using Subprocess python
早上好。我正在尝试应用此代码,但收到消息“TypeError:需要类似字节的对象,而不是 'str'”。
import subprocess as Popen
import subprocess as sp
prog = sp.Popen(['runas', '/noprofile', '/user:Administrator', 'NeedsAdminPrivilege.exe'],stdin=sp.PIPE)
prog.stdin.write('password')
prog.communicate()
但我收到消息“TypeError:需要类似字节的对象,而不是 'str'”。
Traceback (most recent call last): File "runas.py", line 6, in <module>
prog.stdin.write(Pswd) TypeError: a bytes-like object is required, not 'str' ser: ssword for domain
我是 Python 的新手,花了好几天时间尝试解决这个问题。
我已经尝试使用 .encode() 但我不确定如何使用它。我尝试用变量更改“密码”字符串,但也没有成功。
非常感谢您的专业知识。
此致,
编辑:
我根据您的建议更正了代码:
import subprocess as Popen
import subprocess as sp
pswd="P4ssW0rd"
prog = sp.Popen(['runas', '/noprofile', '/user:domain\romanuser', cmd.exe'],stdin=sp.PIPE)
prog.stdin.write(pswd.encode() )
prog.communicate()
现在我收到回复:
omanuser: ssword for domain
RUNAS ERROR: Unable to acquire user password
您应该在写入之前对字符串进行编码。
prog.stdin.write('password'.encode())
会完成任务的。
如果是包含字符串的变量,比如Pswd
,可以使用Pswd.encode()
早上好。我正在尝试应用此代码,但收到消息“TypeError:需要类似字节的对象,而不是 'str'”。
import subprocess as Popen
import subprocess as sp
prog = sp.Popen(['runas', '/noprofile', '/user:Administrator', 'NeedsAdminPrivilege.exe'],stdin=sp.PIPE)
prog.stdin.write('password')
prog.communicate()
但我收到消息“TypeError:需要类似字节的对象,而不是 'str'”。
Traceback (most recent call last): File "runas.py", line 6, in <module>
prog.stdin.write(Pswd) TypeError: a bytes-like object is required, not 'str' ser: ssword for domain
我是 Python 的新手,花了好几天时间尝试解决这个问题。
我已经尝试使用 .encode() 但我不确定如何使用它。我尝试用变量更改“密码”字符串,但也没有成功。
非常感谢您的专业知识。
此致,
编辑:
我根据您的建议更正了代码:
import subprocess as Popen
import subprocess as sp
pswd="P4ssW0rd"
prog = sp.Popen(['runas', '/noprofile', '/user:domain\romanuser', cmd.exe'],stdin=sp.PIPE)
prog.stdin.write(pswd.encode() )
prog.communicate()
现在我收到回复:
omanuser: ssword for domain
RUNAS ERROR: Unable to acquire user password
您应该在写入之前对字符串进行编码。
prog.stdin.write('password'.encode())
会完成任务的。
如果是包含字符串的变量,比如Pswd
,可以使用Pswd.encode()