Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1051385
  • 博文数量: 171
  • 博客积分: 55
  • 博客等级: 民兵
  • 技术积分: 2077
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 10:11
个人简介

pugna

文章分类

全部博文(171)

文章存档

2021年(4)

2020年(1)

2019年(4)

2018年(5)

2017年(7)

2016年(9)

2015年(36)

2014年(8)

2013年(96)

2012年(1)

分类: Python/Ruby

2013-11-03 20:20:13

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();



阅读(11174) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~