Python教学——第八天

我是做运维的,做运维就为因为单位的要求而去寻求不同的方案.很多时候你网上找一个方案要各种配置,碰到配置复杂的可能要耗费大量的时间去检查日志,检查环境.如果自己会一点东西,那么可能自己写一个都比网上找一个配置起来更快

今天还是满满的干货!直接放代码图,其实这些代码对一个初学者来说有点难了.

但是如果你每次代码都是通过自己手打的,这样你对python的感觉会好很多,从打代码的过程就可以学到很多的基础.因为你手打的过程不小心的话很容易出现问题,然后通过自己的耐心排错.然后在打代码的时候知道一些基本的模块,然后通过我的代码以及自己学到的东西去举一反三.成长最快的就是通过自己的耐心去排错.

你可以先从我的github下载这个源码,试着直接运行,然后打印一个文件,你会发现你的打印记录就会被监视到.

里面要显示的内容当然是自己可以根据自己的需求拼接而成.

importtime #导入time模块

importwin32print #导入win32print模块

importsocket,datetime #导入socket和datetime模块

以上三行你也可以写成一行,只要用逗号隔开就行.实际真正起作用的是win32print模块,其它的模块我们只是用来作其它辅助作用

比如

server = socket.gethostname()

我们只是通过socket模块拿到了服务器的名称,因为我是在本机跑的,所以打印的服务器跟打印的客户端都是同一台

可能真正有疑问的是这句:

forpinwin32print.EnumPrinters(win32print.PRINTER_ENUM_LOCAL,None,1):

你不知道这句应该怎么写,里面可以填哪些参数

微软的帮助如下

https://msdn.microsoft.com/en-us/library/windows/desktop/dd162692(v=vs.85).aspx

document = job["pDocument"]

username = job['pUserName']

identity = job['JobId']

jobstate = job['Status']

machinename = job['pMachineName'].replace("\\\\","")

Pages = job['TotalPages']

而这些都是从上面监视到的事件提出来的信息赋值给某一个变量

比如谁打印的,打印的文件名是什么,打印状态是什么,打印的时候就是通过上面的datetime模块才查询到的本机时间

printstr ="[Server:"+ server +"],[Who:"+ username +"],[Computer:"+ machinename +"],[Print Time:"+ pTime +"],[JobID:"+str(identity) +"]"

这句就是拼接出你要显示的东西

另外想问一下,你是通过什么途径关于我的?感谢你的反馈

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180105G0XV9Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励