Python如何使用OS模块调用cmd
作者:Tynam.Yang 发布时间:2023-03-22 02:25:39
标签:Python,OS,模块,cmd
在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system()
os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的执行结果。
os.popen(cmd,mode) 打开一个与command进程之间的管道。返回值是一个文件对象,可以读或者写(由mode决定,默认是'r')。如果mode为'r',可以使用此函数的返回值调用read()来获取command命令的执行结果。
os.system()
定义:
def system(*args, **kwargs): # real signature unknown
""" Execute the command in a subshell. """
pass
简单的来说就是在shell中执行command命令
示例:
(venv) C:\Users\TynamYang>python
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import os
>>> cmd = 'echo "I am tynam"'
>>> os.system(cmd)
"I am tynam"
>>>
os.popen()
定义:
# Supply os.popen()
def popen(cmd, mode="r", buffering=-1):
if not isinstance(cmd, str):
raise TypeError("invalid cmd type (%s, expected string)" % type(cmd))
if mode not in ("r", "w"):
raise ValueError("invalid mode %r" % mode)
if buffering == 0 or buffering is None:
raise ValueError("popen() does not support unbuffered streams")
import subprocess, io
if mode == "r":
proc = subprocess.Popen(cmd,
shell=True,
stdout=subprocess.PIPE,
bufsize=buffering)
return _wrap_close(io.TextIOWrapper(proc.stdout), proc)
else:
proc = subprocess.Popen(cmd,
shell=True,
stdin=subprocess.PIPE,
bufsize=buffering)
return _wrap_close(io.TextIOWrapper(proc.stdin), proc)
也是在shell中执行command命令,但是返回的结果却是一个文件对象,可以对其读写
其中的三个参数含义:
command -- 执行的shell命令
mode -- 模式权限,读(‘r')或者写(‘w'),默认为读(‘r')
bufsize -- 如果将缓冲值设置为0则不会进行缓冲。 如果缓冲值为1则在访问文件时将执行行缓冲。 如果将缓冲值设置为大于1的整数则以设置的缓冲大小执行缓冲操作。 如果为负则缓冲区大小为系统默认值(默认行为)。
示例:
>>> import os
>>> cmd = 'echo "I am tynam"'
>>> f = os.popen(cmd, 'r')
>>> f.read()
'"I am tynam"\n'
>>>
来源:https://www.cnblogs.com/tynam/p/12357970.html
0
投稿
猜你喜欢
- 1.多选按钮的方法以下为常用的方法:方法描述deselect()清除多选按钮选中选项。flash()在激活状态颜色和正常颜色之间闪烁几次多选
- Pygame模块一览表:引入pygame模块 ,若本机没有请自行pip install pygame#载入必要的模块import pygam
- 本文研究的主要是Python进程间通信Queue的相关实例,具体如下。1.Queue使用方法:Queue.qsize():返回当前队列包含的
- 1. 概述快过年了,刚刚收到了两个消息,一个好消息,一个坏消息。先说好消息,好消息就是微信群里有人要发红包,开心~不过转念一想,前几次的红包
- 执行以下代码,发现无法跳出for循环:func SelectTest() { i := 0 for { select { case <
- 本文实例讲述了Python线性方程组求解运算。分享给大家供大家参考,具体如下:求解线性方程组比较简单,只需要用到一个函数(scipy.lin
- 前言大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用d
- 关于Python语言,众说纷纭,但无外乎两种,强大,垃圾。大多数人还是对Python持肯定意见,认为它很强大。前些天和两个的大学同学聊天,一
- 前言 1.实验环境: Python 3.6;2.示例代码地址:下载示例; 3.本文中元素是指列表、元组、字典等集合类数据类型中的下一级项目(
- 首先确保装了Python,我装的是2.x版本,对了,我的操作系统是WIN7,其实对于Python来说,什么操作系统并不重要。Python内置
- 用 Python 关机你肯定听过或者实践过,那么用 Python 开机呢?这是一个神奇的方法,教你如何用 Python 来开机。GitHub
- CSSer与其他IT职位一样,在找工作的时候,都会面临着面试官提出的问题,或者给出的试卷。一、超链接点击过后hover样式就不出现的问题?被
- 1.首先分析要做的项目的结构,整理出关系图2.运行 python manage.py startapp XXX 创建一个app3.根据关系图
- 1、简单应用代码如下:#!/usr/bin/env python# -*- coding: utf-8 -*-# @File : jieba
- for循环基本语法格式: for(初始化变量;条件表达式;操作表达式){  
- 这个问题让我查了许多天才解决,为了避免后面的人重复走弯路,记录下来。问题描述:我在ubuntu 下编译安装了caffe ,在命令行模式下可以
- 一、创建配置文件在D盘建立一个配置文件,名字为:test.ini内容如下:[baseconf]host=127.0.0.1port=3306
- 从内部来看,每个session都只是一个普通的Django model(在 django.contrib.sessions.models 中
- 1,建立数据库文件cnbruce.mdb(不设计任何表)建立数据库的代码:<% Option Explicit&
- 项目中使用的日志库是使用python官方库logging封装的,但是居然一直么有设置日志自动滚动,经常会受到告警说哪台机器磁盘空间又满,清理