Python系统相关(os)(subpross)(os.path)(环境变量)

调用系统命令 / 系统可执行文件

linux和windows都可以

调用windows记事本

import os
os.system('notepad.exe')

调用windows cmd

import os
os.system('cmd')
os.system('powershell')

调用windows的ping命令

import os
os.system('ping www.baidu.com')

调用linux 命令

引号中的命令就是我们在terminal中输入的命令

import os
os.system('ls -lh')

直接调用可执行文件

import os
os.startfile(r'C:/Program Files (x86)/WeChat/WeChat.exe')

远程传输文件   scp

os.system('sshpass -p ***** scp work_dirs/%s/%s xho@172.26.12.84:/home/xx/py/AE_TextSpotter/work_dirs/%s/'%(folder_name, i, folder_name))

sshpass   ssh登录在命令行中指定密码

调用sudo,在命令中送入密码

os.system('echo %s | sudo -S %s' % ('******', 'lastb'))

sudo的-S参数 含义是:从标准输入读取密码 

管道前输出的密码作为sudo -S 的stdin,从而达到自动输入密码的作用。

 注意:-S 是大S  小写s作用不一样

获取命令行的输出 /  获取os.system()的输出

import os

console = os.system('echo %s | sudo -S %s' % ('******', 'lastb | head'))
r = os.popen(console)
for line in r.readlines():
    print (line)

但是这个可能遇到报错,遇到的话用subpross

import subprocess
cmd = 'echo %s | sudo -S %s' % ('******', 'lastb | head')
screenData = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True)
while True:
    line = screenData.stdout.readline()
    print(line.decode('gbk').strip("b'"))
    if line == b'' or subprocess.Popen.poll(screenData) == 0:
        screenData.stdout.close()
        break

os.chdir() 改变当前工作目录到指定的路径

os.getcwd() 获取当前路径

os.path()

Python的相关库和函数_hxxjxw的博客-CSDN博客_python库函数

os.walk()  遍历目录

如果目录里面还有目录还有目录,他会一直递归地遍历下去

import os

for i in os.walk('./'):
    root,dirnames,filenames = i
    print(i)

 

os.scandir()

遍历目录,比os.walk()要快 (貌似比os.listdir也快)

import os

for i in os.scandir('./'):
    print(i)

读取环境变量

import os

print(os.environ)
print(os.environ['MASTER_PORT'])
print(os.environ['MASTER_ADDR'])
print(os.environ['WORLD_SIZE'])
print(os.environ['RANK'])

os与subpross的区别

os操作更简单直接

但是os.system主要问题,就是无法获取shell命令的输出,无法进行输入;也没有超时设置,如果外部命令挂死,会直接导致当前进程挂死

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值