Python中利用批处理、powershell和sqlite解决一些问题

  因为工作关系以前使用python时要使用批处理和powershell来处理一些事情,所以把这两种方式整理一下,希望能对看这个博客的人有所帮助。

  一、python执行批处理

    先说有什么用吧,作一个简单的例子,如果你要从远程主机(windows操作系统,并且设置了共享文件夹)利用python批量的往本地复制文件。在这个过程中就能凸显出python调用批处理的作用,在这个过程中,你得判断本地是否与远程主机连接利用net view命令查看连接状态,如果连接直接往下执行python,如果没有你需要用net use来进行连接,从这个例子就能看出来,用python调用批处理也是有用的。当然如果远程主机是linux那么就没必要了,那个还是要靠ssh协议连接,具体什么包就不往下说了,我只了解到还要装VS,也许是错的,有兴趣的自己了解吧,下面说正文,上代码。 

import os

action = os.popen('ping 127.0.0.1')  #执行ping命令
pingResult = action.read()               #从stream中读结果 
tempPingLine = pingResult.splitlines()      #把结果按行存入列表          

  二、python执行powershell

    也是先说有什么用,powershell这个东西功能强大,能干很多东西,就像计算文件hash值,查进程等等,假如我们想验证我复制过来的每个文件是否是最初的,有没有被改动过可以在最初的时候计算文件的hash,将hash值记录下来,如果文件有改过复制到本地后在本地计算出来的hash会和最初的不一样,当然如果没有被改动过,hash值会有变化,有兴趣的可以了解一波,下面说正文,上代码。

import os

ps = subprocess.Popen(actionCommand, stdout=subprocess.PIPE)
psReturn = ps.stdout.read().decode('windows-1252')  
#这里我进行了解码,如果不这样写会出现较多乱码 psReturnList = psReturn.splitlines()

    这里有个东西值的我说一说了,第一句的actionCommand这个东西,我查到的是传列表和字符串都可以,但是是有区别的,传列表的话从我查到的资料来看他会自动转成字符串在执行,但是就在这个地方有个问题,如果传了列表的话python文件在idle上运行的好好的,但是用命令行去执行就会闪退,我遇到过这种情况。所以我使用这个的时候,我都是传的字符串。

  三、python利用sqlite

    sqlite数据库这个就不用说了,存储数据使用的,sqlite小型数据库,安全性稍弱,只能储存一些不重要的数据,比如自己写的UI没有什么重要的业务信息可以用sqlite来储存,有个好处就是文件小只有一个后缀是db的文件,要操作数据库只要有官方的exe文件在命令行窗口就可以操作数据库很方便,如果要存储比较重要的信息最好使用安全性较高的Oracle,闲话莫提,上主要代码:

import sqlite3

conn = sqlite3.connect(r'./analyzeTool.db')
cursor = conn.cursor()
sql = "select * from table"
cursor.execute(sql)
resultList = cursor.fetchall()
cursor.close()
conn.commit()
conn.close()

  其中resultList = cursor.fetchall()这句得到的结果是一个以元祖为元素的列表比如[('1','2','3'),('2','2','3')]这样。

posted on 2021-02-24 17:04  1548562170  阅读(213)  评论(0编辑  收藏  举报