Chinaunix首页 | 论坛 | 博客
  • 博客访问: 75065
  • 博文数量: 44
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-19 16:49
文章分类

全部博文(44)

文章存档

2018年(2)

2017年(1)

2016年(41)

我的朋友

分类: Python/Ruby

2016-10-24 15:12:05

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) |
给主人留下些什么吧!~~