python3执行shell命令的几种方式
1.用os.system(cmd) 可以获取命令执行后的返回值,但是获取不了命令的输出内容
import os;
return_code=os.system('ls -la');
print(return_code);
2.用os.popen(cmd) 可以获取命令的输出内容,但是获取不了命令执行后的返回值
import os;
import sys;
output=os.popen('ls -l');
out=output.readlines();
for i in out:
print(i.strip());
3.用subprocess
import os;
import sys;
import subprocess;
import codecs;
#可以直接将输出写入到文件
output_file=codecs.open('abc.txt','w','utf-8');
return_code=subprocess.call(['ls','-l'],stdout=output_file);
output_file.close();
print(return_code);
#也可以先将输出先保存为string变量,
output=subprocess.check_output(['ls','-l']); #如果命令执行的返回值不为0,则会抛出CalledProcessError的错误
print(output.decode('utf-8'));
#再将string变量写入到文件
output_file=codecs.open('abc.txt','w','utf-8');
output_file.write(output.decode('utf-8'));
output_file.close();
阅读(1643) | 评论(0) | 转发(0) |