Python execute windows cmd functions
我知道可以使用子进程通过python脚本运行Linux终端命令
1 | subprocess.call(['ls', '-l']) # for linux |
但是我找不到在窗户上做同样事情的方法
1 | subprocess.call(['dir']) # for windows |
使用python而不进行繁重的修补是可能的吗?
我应该坚持使用老式的批处理文件吗?
试试这个
导入操作系统
os.system("windows命令")
为日期
操作系统("日期")
dir不是一个文件,它是一个内部命令,因此shell关键字必须设置为true。
1 | subprocess.call(["dir"], shell=True) |
几乎每个人的答案都是对的,但似乎我可以使用os.popen——
首先,要获得目录列表,您应该使用
现在,
因此,您有两种选择(如果需要获取输出而不是打印输出,请使用
使用
cmd 的/C 开关(执行命令并退出):1subprocess.check_call(['cmd','/c','dir','/s'])使用
shell=True Popen() 选项(通过系统外壳执行命令行):1subprocess.check_call('dir /s', shell=True)
第一种方法是推荐的方法。那是因为:
- 在第二种情况下,
cmd 将执行它通常会执行的任何shell转换(例如,将行拆分为参数、不引用、环境变量扩展等)。所以,你的论点可能会突然变成另一种可能有害的东西。特别是,如果它们恰好包含任何空格和cmd 特殊字符和/或关键字。 shell=True 使用"默认系统shell"(在windows的情况下通过COMSPEC 环境变量指向),因此如果用户重新定义了它,您的程序将异常运行。