TypeError:需要类似字节的对象,而不是';str';使用子流程python

TypeError:需要类似字节的对象,而不是';str';使用子流程python,python,subprocess,typeerror,Python,Subprocess,Typeerror,早上好。我试图应用这段代码,但收到消息“TypeError:a bytes-like-object是必需的,而不是'str'” 但我收到消息“TypeError:需要一个类似字节的对象,而不是'str'” 现在我收到回复: omanuser: ssword for domain RUNAS ERROR: Unable to acquire user password 您应该在编写字符串之前对其进行编码 prog.stdin.write('password'.encode()) 我会做好的。

早上好。我试图应用这段代码,但收到消息“TypeError:a bytes-like-object是必需的,而不是'str'”

但我收到消息“TypeError:需要一个类似字节的对象,而不是'str'”

现在我收到回复:

omanuser: ssword for domain
RUNAS ERROR: Unable to acquire user password

您应该在编写字符串之前对其进行编码

prog.stdin.write('password'.encode())
我会做好的。
如果它是一个包含字符串的变量,如
Pswd
,则可以使用
Pswd.encode()

尝试
prog.stdin.write(b'password')
。子流程的标准输入可能需要字节,而不是字符串。如果在字符串前面加字母
b
,则任何字符串文字都可以是字节文字。例如,
b'password'
。不幸的是,这两个注释都没有帮助,因为代码与回溯不匹配,并且字符串中有一个变量。始终确保回溯来自您发布的代码!非常感谢您的回复。该函数解决了“TypeError”,但我的代码仍然不起作用:发布另一个带有新错误的问题@RonyChamorro
    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())