[内容] Python splite 字符串切割

内容一:splite 的格式

<character string>.splite('<separator>', <split several times>)[<which number of word place>]

内容二:splite 的使用案例

2.1 案例一:以一行行的方式进行分割

# string = string.splite('\n')

(补充:这里以给 string 字符串以一行行的方式进行分割为例)

2.2 案例二:制作表格

# string = string.splite('\t')

(补充:这里以给 string 字符串制成表格为例)

2.3 案例三:以空格的方式进行分割

# string = string.splite()

或者:

# string = string.splite(, -1)

(补充:这里以给 string 字符串以空格的方式进行分割为例)

2.4 案例四:以空格的方式进行分割,并截取第 1 个单词

# string = string.splite()[0]

(补充:这里以给 string 字符串以空格的方式进行分割,并截取第 1 个单词为例)

2.5 案例五:以空格的方式进行分割,并截取最后 1 个单词

# string = string.splite()[-1]

(补充:这里以给 string 字符串以空格的方式进行分割,并截取最后 1 个单词为例)

2.6 案例六:以字母进行分割

# splite = re.split(r"[^A-Za-z]", line.strip())

(补充:这里以给 string 字符串以字母的方式进行分割为例)

(注意:要先导入 re 函数)

2.7 案例七:以冒号 “:” 进行分割

# splite = string.splite(':')

(补充:这里以给 string 字符串以冒号 “:” 的方式进行分割为例)

2.8 案例八:以冒号 “:” 进行分割,只分割 1 次,并从开头开始计数

# splite = string.splite(':', 1)

(补充:这里以给 string 字符串以冒号 “:” 的方式进行分割,只分割 1 次,并从开头开始计数为例)

2.9 案例九:以冒号 “:” 进行分割,只分割 1 次,并从末尾开始计数

# splite = string.rsplite(':', 1)

(补充:这里以给 string 字符串以冒号 “:” 的方式进行分割,只分割 1 次,并从末尾开始计数为例)

[工具] Python 截取某一个 Linux 命令所有行的第一列

介绍

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 用 python3 命令执行此脚本

脚本分割线里的变量

command=’df -h’ #要执行的 Linux 命令

脚本

import subprocess
  
####################### Separator ########################

command='df -h' #Linux command to execute

####################### Separator ########################

info = subprocess.check_output('%s'%command, shell=True)
info = info.decode().strip()

lines = info.split('\n')
for line in lines:

    word = line.split()[0]
    print(word)

[工具] Shell 批量重启多个远程服务器的服务

介绍

基本信息

作者:朱明宇
名称:批量重启多个远程服务器的服务
作用:批量重启多个远程服务器的服务

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1. myuser=”eternalcenter” #登录远程服务器的用户
2. myserver=”192.168.1.1 192.168.1.2″ #要登录的远程服务器,以空格隔开
3. myservice=”nginx” #需要重启的服务,以空格隔开
4. mysudo=”no” #是否使用 sudo 提权,请选择 yes 或者 no

注意

1. 此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器
2. 必须以 root 用户执行本脚本

脚本

#!/bin/bash

####################### Separator ########################

myuser="eternalcenter.com"
myserver="192.168.1.1 192.168.1.2 192.168.1.3" #each server is separated by a space
myservice="nginx" #each myservice is separated by a space
mysudo="yes" #please choose "yes" or "no"

####################### Separator ########################

mynow=`date +%Y-%m-%d-%H-%s`

if [ $mysudo == 'yes' ];then
        myrestart(){
                ssh -t $1@$2 "sudo -u root su - root -c \"systemctl restart $3\""
        }
        echo "use sudo"
fi

if [ $mysudo == 'no' ];then
        myrestart(){
                ssh -t $1@$2 "systemctl restart $3"
        }
        echo "don't use sudo"
fi

for services in $myservice
do

        for servers in `echo $myserver`
        do
                myrestart $myuser $servers $services
        done

done

[工具] Shell 批量将本地文件拷贝到多个远程服务器

介绍

基本信息

作者:朱明宇
名称:批量将本地文件拷贝到多个远程服务器
作用:批量将本地文件拷贝到多个远程服务器

使用方法

1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本

脚本分割线里的变量

1. myuser=”eternalcenter” #登录远程服务器的用户
2. myserver=”192.168.1.1 192.168.1.2″ #要登录的远程服务器,以空格隔开
3. myfile=”/home/zhumingyu/test1.txt /home/zhumingyu/test2.txt” #要拷贝的文件,以空格隔开,必须是绝对路劲
4. mysudo=”no” #是否使用 sudo 提权,请选择 yes 或者 no

注意

1. 此脚本执行前必须要先保证执行本脚本的用户能无密码 ssh 远程这些远程服务器
2. 必须以 root 用户执行本脚本

脚本

#!/bin/bash

####################### Separator ########################

myuser="eternalcenter"
myserver="192.168.1.1 192.168.1.2" #each server is separated by a space
myfile="/home/zhumingyu/test1.txt /home/zhumingyu/test2.txt" #each file is separated by a space, absolute road force must be used
mysudo="no" #please choose "yes" or "no"

####################### Separator ########################

mynow=`date +%Y-%m-%d-%H-%s`
mycontext=${myfile##*\/}

if [ $mysudo == 'yes' ];then
        myreplace(){
                scp $3 $1@$2:/tmp/$5
                ssh -t $1@$2 "sudo -u root su - root -c \"mv $3 $3-$4;mv /tmp/$5 $3\""
        }
        echo "use sudo"
fi

if [ $mysudo == 'no' ];then
        myreplace(){
                scp $3 $1@$2:/tmp/$5
                ssh -t $1@$2 "mv $3 $3-$4;mv /tmp/$5 $3"
        }
        echo "don't use sudo"
fi

for files in $myfile
do

        if [ -f $files ];then

                for servers in `echo $myserver`
                do
                                myreplace $myuser $servers $files $mynow $mycontext
                done
        else
                echo "$files does not exist"
        fi

done

[工具] Python 一个脚本调用另一个脚本的函数执行 Linux 命令并返回执行结果

介绍

使用方法

1. 将第 1 个脚本命名为 test_main.py,将第 2 个脚本命名为 test_sub.py,并将它们放在同一个2. 目录下
3. 给此脚本添加执行权限
4. 用 python3 命令执行第 1 个脚本

注意

执行此脚本之前要先安装 ansible 命令,并可以让 ansible 命令控制名为 test 的服务器

第一个脚本

from cpu_sub import *

sename='test'

out1=cpu(sename)
out1=out1.decode().strip()

print(out1)

out2=mem(sename)
out2=out2.decode().strip()

print(out2)

out3=time(sename)
out3=out3.decode().strip()

print(out3)

第二个脚本

import subprocess

def cpu(sname):
    out = subprocess.check_output('ansible -m shell -a \'cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l\' %s | tail -1'%sname, shell=True)
    return(out)

def mem(sname):
    out = subprocess.check_output('ansible -m shell -a \'free -m\' %s | grep -i mem'%sname, shell=True)
    return(out)

def time(sname):
    out = subprocess.check_output('ansible -m shell -a \'uptime\' %s | tail -1'%sname, shell=True)
    return(out)