如何在Windows上从Python运行Linux命令

时间:2019-05-31 05:41:18

标签: python linux windows batch-file

我有一些会生成令牌的Linux命令。我使用Linux机器上的Python操作系统库来自动执行这些命令。一切正常。

但是,当我在Windows中尝试相同的代码时,它什么也不返回。

以下是我尝试过的代码。

uniqueKey = os.popen('echo -n kittu | base64')
data = uniqueKey.read()
print data

在Linux中,我得到以下输出

a210dHU=

在Windows中为空。

3 个答案:

答案 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]