我有一些会生成令牌的Linux命令。我使用Linux机器上的Python操作系统库来自动执行这些命令。一切正常。
但是,当我在Windows中尝试相同的代码时,它什么也不返回。
以下是我尝试过的代码。
uniqueKey = os.popen('echo -n kittu | base64')
data = uniqueKey.read()
print data
在Linux中,我得到以下输出
a210dHU=
在Windows中为空。
答案 0 :(得分:3)
命令特定于操作系统。例如,在Linux上,ls
列出目录中的文件,而在Windows上,dir
列出。
Windows与Linux类似echo
,但不支持标志-n
,这两个命令不相关,只是名称一致。
Windows也没有base64
命令。
尽管我相信PowerShell也会使用|
来表示管道,也不会。
为什么要完全使用OS命令? Python原生支持base64编码:
uniqueKey = base64.b64encode('kittu')
答案 1 :(得分:0)
如果您打算大量使用Linux命令但仍然想要Windows计算机,则可以安装Linux子系统:microsoft documentation
答案 2 :(得分:0)
我找到了在Windows上执行Linux命令的解决方案。我已经在Windows计算机中启用了“ bash”。而且我已经使用Python的“子进程”库在Windows上运行“ Linux”命令。以下是代码。
bash = subprocess.Popen(['bash'],stdin=subprocess.PIPE,stdout=subprocess.PIPE)
result=bash.communicate(input="echo -n kittu|base64")
print result[0]