所以我尝试使用os.popen来运行cmd命令,但问题是大多数命令都有西里尔字符,这似乎与os.popen有一些问题。
import os stream = os.popen("dir") output = stream.read() print(output)
我得到的输出如下:
我需要得到这样的输出:
此外,我试图这样做的子进程库,但它是更难的工作与子进程库,我不能得到正确的编码后,真的很长一段时间,所以我真的想这样做的操作系统库,如果可能的话。
holgip5t1#
我不知道如何让os.popen使用特定的编码(我认为这是不可能的),所以这里有一个使用子进程的解决方案:
os.popen
import subprocess output = subprocess.run("dir", shell=True, encoding="cp866", stdout=subprocess.PIPE).stdout print(output)
Edit:dir是shell内置的,所以需要shell=True,但是对于普通命令可以使用list arg。
shell=True
1条答案
按热度按时间holgip5t1#
我不知道如何让
os.popen
使用特定的编码(我认为这是不可能的),所以这里有一个使用子进程的解决方案:Edit:dir是shell内置的,所以需要
shell=True
,但是对于普通命令可以使用list arg。