python 自动化实战手册

Python 自动化实战手册

调用系统终端(cmd)

1.运用场景

有一些工具是使用命令行来执行的,这时可以调用系统终端来实现自动化

如:

swftool:http://www.swftools.org/(swf转换工具)

ffmpeg:https://ffmpeg.org/(视频转码工具)

2.实例

# pdf转swf
os.system('E:\swftools\pdf2swf.exe -b E:\swftools\pdf\%s.pdf -o E:\swftools\swf\%s.swf' % (name, name))

3.语法解释

  • import os引入os模块,该模块主要提供与操作系统相关的功能的便捷式途径

  • os.system可以在系统的子shell中执行命令,在windows上即相当于在cmd运行命令行,其返回值为命令退出的状态

  • os.system运行命令行时无法实时显示运行过程,只能最终返回运行结果,这是和在cmd运行时的差别

  • 使用system函数,会创建一个子进程,但是子进程无法影响父进程中的环境变量。简单来说,就是使用第一个system函数用cd切换目录,第二个system函数的环境变量仍然继承父进程的环境变量。所以第二个子进程的目录位置没有被第一条语句改变

  • 关于新进程的生成和跟踪执行结果,往往用subprocess模块代替system

  • system函数执行多条语句的方法,可以使用复合语句,如:os.system('cd path-to-repo && svn ci'),即都在一个子进程中运行命令

  • 或者使用os.chdir切换父进程的目录,再执行子进程

文件遍历筛选

1.运用场景

在自动化批量操作文件时,一定少不了文件遍历,并且可以筛选出需要的文件

2.实例

# 引入python的标准库os库
import os
# 遍历文件夹
def file(name):
    # 初始化一个空列表存储文件
    list_all = []
    # 搜索一个目录下的所有文件夹和所有文件内的指定类型文件
    for root, dirs, files in os.walk('E:\swftools\%s' % name):
        # 获得文件名
        for name in files:
            # 加上文件路径
            dir_path = os.path.join(root, name)
            # 切割出文件名
            dir_name = os.path.split(dir_path)[-1]
            # 筛选文件
            if '.pdf' or '.swf' in name:
                list_all.append(dir_name)
        return list_all

3.语法解释

  • os.walk(根目录)可返回3元组 (dirpath, dirnames, filenames)【文件夹相对路径, 文件夹名字, 文件名】
  • os.path.join拼接路径
  • os.path.split(path)拆分路径为(head, tail)

服务器操作

1.运用场景

可以运用在将本地文件上传到服务器或者操作服务器上的文件,还可以调用服务器的终端(可用于在服务器上制作视频流)

2.实例

参考博客:

https://www.jianshu.com/p/486dd9993125

https://juejin.cn/post/6844904078057668615

import paramiko
# 建立ssh连接的同时,建立一个加密的文件传输通道
# 设置连接服务器信息
t = paramiko.Transport(("host(主机号)", 端口(一般为22))
t.connect(username="用户名", password="密码")
# 将sshclient的对象的transport指定为以上的t,即进行ssh连接
ssh = paramiko.SSHClient()
ssh._transport = t
# ssh连接后在服务器终端运行命令,此处为复合语句
stdin, stdout, stderr = ssh.exec_command('cd /../var/www/;pwd;')
# 开启sftp通道,传输文件
sftp = ssh.open_sftp()
# 文件传输
sftp.put(localpath='本地路径', remotepath='远程路径’)
# 关闭通道
sftp.close

3. 语法解释

  • paramiko模块主要用于远程操作服务器,利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输

  • pip install paramiko下载安装paramiko模块

  • 使用paramiko模块有两种连接方式,一种是通过paramiko.SSHClient()函数,另外一种是通过paramiko.Transport()函数

  • exec_command函数调用会返回3个变量,其中stdout为标准输出,在输出内容比较少时,可以通过直接使用read读取出所有的输出

  • sftp用get函数即下载远程文件,put函数即上传本地文件

数据库操作

1.运用场景

筛选统计数据库,或者可以利用数据库批量快捷发布网站内容(如基于wordpress的站点)

2.实例

参考文章:https://www.runoob.com/python3/python3-mysql.html

(1)引入所需库

import pymysql
from sshtunnel import SSHTunnelForwa
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值