您制作的有趣的Python系统实用程序?
我正在慢慢地但肯定地自学Python。我通过实践学习得最好。我正在寻找一些整洁的系统生产力类型的程序,我可以尝试使您发现对自己有用。我成功制作和使用的一些模块如下:您制作的有趣的Python系统实用程序?,python,Python,我正在慢慢地但肯定地自学Python。我通过实践学习得最好。我正在寻找一些整洁的系统生产力类型的程序,我可以尝试使您发现对自己有用。我成功制作和使用的一些模块如下: 压缩文件夹 将一整套文件夹压缩到存档中作为自动备份 应用程序启动器,在启动时打开我最常用的程序 但我现在有点困了。我还能做些什么呢?我制作了一个片段,在整齐的列中列出了系统上每个硬盘驱动器的总空间、剩余空间和使用空间。需要它来报告用途 还制作了一个电子邮件日志解析器,这是一个非常有趣的练习。在此之前,我没有经常使用自定义状态机,
- 压缩文件夹
- 将一整套文件夹压缩到存档中作为自动备份
- 应用程序启动器,在启动时打开我最常用的程序
但我现在有点困了。我还能做些什么呢?我制作了一个片段,在整齐的列中列出了系统上每个硬盘驱动器的总空间、剩余空间和使用空间。需要它来报告用途
还制作了一个电子邮件日志解析器,这是一个非常有趣的练习。在此之前,我没有经常使用自定义状态机,但这让我对它们的潜在应用程序非常感兴趣(几乎所有的东西都是这样的。)看看给定目录中所有文件的名称,并在必要时修复文件扩展名。例如,如果一个.wav文件以“MThd”开头,它可能是一个不知何故被命名错误的Midi文件。我使用Python作为一个简单的统计脚本(比如电池、cpu使用率、内存)来导入dwm中的动态条
类似于Openbox管道菜单的后端。有许多自定义日志分析器、安装程序、版本检查器等。一些脚本在Cacti或MRTG等工具中收集数据以进行可视化
你可以在上找到用Python编写的许多系统实用程序。我有很多歌曲、视频和图像,我很直观地将它们转储到名为“myfolder”的文件夹中,我试图组织起来,但随着时间的推移,我在不同的文件夹中找到了许多重复的歌曲,在多个地方找到了相同的图像,等等 所以我写了一个脚本,我运行它来删除重复的文件,这可能是一个有趣的练习
所以这个问题确实实现了类似的脚本:)我曾经编写了一个小型Python模块,我将其与上的“清理”实用程序菜单集成。它提供了一个方便的快捷方式,可以轻松删除Microsoft Visual Studio为每个项目生成的所有文件,这些文件不应置于版本控制之下,而是以某种方式提交 看看这本书。你可能会在那里找到一些灵感。我最常用的两个自制小文本实用程序是“sum”和“checkUTF8”。第一个是一个过滤器,它根据标准输入对文件中的数字(每行一个)进行汇总,如下所示:
$ grep '[0-9.]' somefile | sum
567567
$ wc -l * | sum
45647
。。。不用说,我做了很多探索性的日志分析
第二个检查at文本文件是否以UTF8正确编码,如果没有,则显示问题行的行号、字节偏移量、字符偏移量和实际文本,并突出显示问题区域的开头。这使得在必要时使用十六进制编辑器纠正问题成为可能。与我从iso8859-1转换为utf8时相比,现在的问题要小得多,但它仍然存在
尽管“sum”在任何脚本语言中都很容易实现,但另一种脚本语言需要良好的unicode支持。尝试编写一个非常简单的电子邮件客户端,作为能够通过电子邮件向计算机发送专门的消息的一个步骤,告诉它执行特定的操作,如在Windows平台上运行作业、重新启动、回复一些信息等。,我围绕win32file.FindFilesW()API(来自PythonExtensionsforWindows包)编写了一个包装类,以有效地计算任何给定文件夹(本地或远程)的总大小。API本身是Win32 API中FindFilesW()函数的包装器。对于我的类对象,我添加了一些额外的功能,这些功能除了获取文件夹的总大小外,还非常有用。特别是,我添加了一个功能来捕获拒绝访问的文件和子文件夹的完整路径,这样我就可以知道我得到的是扭曲的还是真实的结果;我添加了一个功能,可以检索到一定数量的总大小(如果我只想知道是否存在任何数据,例如1字节、15字节、1MB等);我还添加了一个功能,可以继续处理拒绝访问的错误。我这样做是因为在VBScript中(出于政治原因,我最初使用VBScript),如果遇到任何拒绝访问的错误,捕获给定文件夹总大小的功能将失败。在Windows资源管理器外壳中,查看文件夹的属性将告诉您文件夹的总大小,但如果遇到任何拒绝访问的错误,则不会通知您,因此可能会在您不知道的情况下扭曲大小属性。另一个想法:阅读“Joel On Software”然后编写一个实用程序来扫描系统上的所有HTML文件,并确保它们编码正确。也就是说,确保页面声称的内容类型与实际使用的内容类型相同。我还编写了一个PyZip实用程序来进行快速备份。它采用文件名模板和文件模式列表,如下所示:
pyzip store\ProjectFiles-[date] *.py *.txt
如果“存储”文件夹不存在,则会创建它
如果模板文件名不包含“.zip”,则会添加它
[date]标记被替换为当前日期20090624
同样地,对于[时间],155859
我正在研究一个[#]令牌,该令牌将根据与整个模式匹配的现有文件名替换为下一个匹配的数字,用于编号而不是日期戳备份
随着时间的推移,我希望尽可能多地复制旧的PKZip命令行功能,并创建相应的PyUnzip
我通常在Windows机器上使用ActiveState Python,这与win32扩展一起提供,因此我一直在编写大量ActiveDirectory管理脚本、Word和Excel COM自动化、管理小型SQLite数据库,以及我使用VBScript执行的许多其他事情,以及许多无法完成的事情(无论如何都很容易)使用VBScript。我编写了一个脚本,使用rsync备份本地驱动器上的远程目录树,然后开始向后旋转
"""
Intended to run on Windows resume. Scans for bluetooth devices and if a
particular device is not present, locks the computer.
"""
import bluetooth
import ctypes
import sys
# Bluetooth UID of "token" device
wanted = "XX:XX:XX:XX:XX:XX"
print "performing inquiry..."
# Hack.... if 0 devices are present, pybluez throws an exception
passed = False
try:
discovered = bluetooth.discover_devices()
if wanted in discovered:
print "Found phone"
passed = True
else:
passed = False
except:
passed = False
if not passed:
print "Locking"
ctypes.windll.user32.LockWorkStation()