python經常使用模塊

yagmail

一、首先安裝yagmail軟件。
pip install yagmail
二、yagmail使用方法:
三步實現發送郵件python

import yagmail
 # 1.實例化出來一個yagmail對象
    yag = yagmail.SMTP(user='1362394088@qq.com', 
password='roaspxrdhkdefjbf', host='smtp.qq.com')
# 2.發送郵件操做
    yag.send(to='1362394088@qq.com',subject=a, contents=b)
# 3.關閉郵箱
    yag.close()

configparser

1、ConfigParser簡介
ConfigParser 是用來讀取配置文件的包。配置文件的格式以下:中括號「[ ]」內包含的爲section。section 下面爲相似於key-value 的配置內容。linux

import configparser
 config = configparser.ConfigParser()
 config.read('a.txt',encoding='utf-8')

列出全部標題
 data = config.sections()
 print(data)

利用section寫入key=value,修改某個option的值,若是不存在則會出建立
 config.set('base','name','http://www.baidu.com')
 config.write(open('a.txt','w'))

列出全部的key
 data = config.options('base')
 print(data)

利用seciton和option取value
 data = config.get('base','enabled')
 print(data)

利用section取出全部的鍵值對
 data = config.items('base')
 print(data)

判斷文件中是否有section
 res = config.has_section('base1')
 print(res)

判斷section下是否有指定的option
 res = config.has_option('base','baseurl')
 print(res)

刪除option
 config.remove_option('base','name')
 config.write(open('a.txt','w'))

刪除secion(會把下面的key value所有刪除)
 config.remove_section('centos7')
 config.write(open('a.txt','w'))

paramiko:模擬ssh登陸linux主機,也有上傳下載功能

pip install paramiko

一、ssh鏈接linux主機
 import paramiko
 ssh = paramiko.SSHClient()
 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
 ssh.connect(hostname='192.168.254.10',port=22,username='root',password='root')
 while True:
     cmd = input('#').strip()
     if cmd:
         stdin, stdout, stderr = ssh.exec_command(cmd)
         print(stdout.read().decode('utf-8'))

二、上傳,下載
 import paramiko
 t=paramiko.Transport(('192.168.254.10',22))
 t.connect(username='root',password='root')
 sftp = paramiko.SFTPClient.from_transport(t)
 sftp.put(r'C:\Users\Administrator.USER-20190512NQ\Desktop\python3
模塊.txt', '/root/python3模塊.txt')
 sftp.get('/root/a.txt',r'C:\Users\Administrator.USER-20190512NQ\Desktop\a.txt')
 sftp.close()

OS模塊的使用

import os

一、獲取當前路徑
 res = os.getcwd()
 print(res)

二、chdir改變所在目錄
 os.getcwd()
 os.chdir('app01')
 res = os.getcwd()
 print(res)

三、mkdirs遞歸建立目錄,mkdir -p
 os.makedirs('a/b/c')

四、mkdir   新建目錄,只能建一層
 os.mkdir('a')

五、rmdir刪除目錄
 os.rmdir('a')

六、listdir以列表形式查看目錄全部文件(包括隱藏文件)
 res = os.listdir('app01')
 print(res)

七、remove   刪除指定的一個文件
 os.remove('a.txt')

八、rename重命名
 os.rename("a.txt","aaa.txt")

九、查看文件的詳細信息
 print(os.stat("aaa.txt"))

十、文件或目錄是否存在
 res = os.path.exists('static')
 print(res)

十一、isdir判斷是不是一個目錄
 res = os.path.isdir('aaa.txt')
 print(res)

十二、isfile判斷是不是一個文件
 res = os.path.isfile('static')
 print(res)

1三、paht.join,拼接路徑
 BASE_DIR = r'C:\Users\Administrator.USER-20190512NQ\Desktop\test_django\app01'
 file_name = '250.txt'
 res = os.path.join(BASE_DIR,file_name)
 print(res)

 1四、echo $?查看上一個命令是否執行成功,若是成功返回0,若是不成功返回非0
 res = os.system('asdasd')
 print(res)

socket模塊

一、linux服務器(半雙工)shell

import socket
import subprocess
import threading
server = socket.socket()
server.bind(('', 8888))
server.listen(5)
print('等待電話.....')
conn, addr = server.accept()
print('電話來了......')
while True:
    data = conn.recv(10240)
    cmd = subprocess.Popen(data.decode('utf-8'),
                           shell=True,
                           stdout=subprocess.PIPE,
                           stderr=subprocess.PIPE)
    stdout = cmd.stdout.read()
    stderr = cmd.stdout.read()
    conn.send(stdout + stderr)

客戶端
import socket
import threading
client = socket.socket()
client.connect(('192.168.254.24', 8888))
while True:
    info = input('===>:')
    if not info:continue
    client.send(info.encode('utf-8'))
    data = client.recv(10240)
    print(data.decode('utf-8'))

二、全雙工電話django

#服務器端
import socket
import subprocess
import threading
server = socket.socket()
server.bind(('', 8888))
server.listen(5)
print('等待電話.....')
conn, addr = server.accept()
print('電話來了......')
def recv():
    while True:
        data = conn.recv(10240)
        print(data.decode('utf-8'))
def send():
    while True:
        data = input('===>:')
        conn.send(data.encode('utf-8'))
t1 = threading.Thread(target=recv)
t2 = threading.Thread(target=send)
t1.start()
t2.start()

#客戶端
import socket
import threading
client = socket.socket()
client.connect(('localhost', 8888))
def send():
    while True:
        info = input('===>:')
        client.send(info.encode('utf-8'))
def recv():
    while True:
        data = client.recv(1024)
        print(data.decode('utf-8'))

t1 = threading.Thread(target=send)
t2 = threading.Thread(target=recv)
t1.start()
t2.start()

三、監測端口centos

import socket
socket.setdefaulttimeout(1)
host_list =['192.168.4.145:5555','192.168.4.146:555','192.168.4.147:5555','192.168.
31.199:445']
for info in host_list:
    server = socket.socket()
    ip = re.compile('(.*?):(.*)').search(info).group(1)
    port = re.compile('(.*?):(.*)').search(info).group(2)
    res = server.connect_ex((ip, int(port)))
    if res == 0:
        print('%s--%s端口正常' % (ip, port))
    else:
        print('%s--%s端口異常' % (ip, port))
相關文章
相關標籤/搜索