这一年来——记博客恢复更新

作者分享了一年以来的成长与转变,从最初的博客追求人气转向更注重表达能力的提升。提及了在技术表达、人际关系及自我反省方面的进步,并计划分享更多关于行业动态、书籍评论和笔记。此外,作者还提到了个人兴趣如音乐的学习以及阅读习惯的调整。

上一篇文章的更新已经距今一年多了,这一年来,也有了不少成长,想通了一些事情,也积累了不少的东西,可以和大家分享一下。

 

    我常想写博客的目的是什么。开始是为了赚点人气,好让自己有点成就感。然后开始读一些比较受欢迎的博客,发现要写一个受欢迎的博客,是需要长时间积累和技术积累的,这需要付出相当大的耐心和努力。就自己来说,以前酝酿,到代码实践,再写出来,需要一天到几天的时间,好不容易写出来了,人气又不高,这是相当打击人的。虽然还是写了一些东西,但终究没有坚持下来。还有在微博当道的现在,读一篇长的技术文也让很多人觉得不耐烦,更何况写的人。

 

    但其实我觉得我是有收获的。当别人问我一部电影是讲什么的时候,我能够把乱序拍摄的电影的情节大概描述出来,而且能够让人明白。当我在做PPT演示的时候,表达的主题也更有条理和清晰了。一开始我没有察觉出来,都是朋友和同事告诉我的。这也让我重新开始思考写博客的目的了,写博客就是一种表达的训练,好的表达也是能获得别人认可的。

 

    其实我是很喜欢分享知识的,我的理想工作是从事教育行业。但是因为很多原因,我没有选择这个行业,我有罗永浩的理想主义,但是没有他的执着和能力。将来如果有机会,我会去尝试。虽然分享是个很高尚的词,但是目的终究是自私的,获得认可和成就感才是人的动力。

 

    这一年,换了一份工作,一个城市。虽然工作职位没有很大的改变,但是能够做更多的尝试了。比如面试别人,也开始指导一些刚入行的同事。工作上也能学到一些新的东西,和新同事的相处也变得相熟,愉快起来。工作时紧时松,工作的责任大了,做事自然也会主动起来。技术的进步谈不上,软技能倒是有提升。

 

    这一年,也时常反省。以前的工作学习方法有什么缺点。例如我写过一篇文章,叫《一个初级程序员学习新技术的策略》。过了两年,有了一些不同的看法,也会把它写下来。开始做读书笔记,evernote,很多人都知道的软件。接下来也会把一些笔记分享出来,但是笔记终究是总结,是要结合书来看才知道个所以然。

 

    坚持每天都读行业的新闻,也对行业的发展有一些看法,也会去读自己入行以前的书,把历史知识给补全些。接下来也会写一些这方面的博客,也会写一些书的评论和总结吧。

 

    文学的书也还是有看,因为我发现那样可以平息一下自己浮躁。往往读技术的书看不下去,便拿起文学的散文读读,心情稍微平静,也不会很抗拒继续看技术的书。买了一个电子书,常因找不到好的技术书电子版而发愁,于是还是常跑图书馆,电子书变成读书笔记和备忘字典了。购买纸质的书变得审慎起来,每次搬家都很痛苦,只能尽量借了。

 

    我时常因为自己小时候没有学到一门乐器而感到后悔,因为一些机缘巧合的原因,发现吉他不太难学,而且比较适合自己,于是便开始自学起来,希望明年能够弹会一首比较复杂的歌。

 

    嗯,差不多就这样。仅以此文记博客恢复更新。

<think>我们使用Python的wmi模块来获取硬盘的通电时间(PowerOnHours)。但是注意,通电时间通常以小时为单位,我们需要获取一年来的数据,因此可能需要录每次查询的时间并计算差值,或者直接读取当前的通电时间(如果硬盘支持SMART)。 然而,硬盘通电时间是累计的,我们无法直接获取“一年来”的累计时间,但可以录当前的通电时间,然后与一年前的录进行比较。但如果没有历史录,我们可以通过当前通电时间减去一年前的通电时间(如果有一年前的录)来得到。 但是,如果没有历史录,我们可以考虑: 1. 获取当前的通电时间(假设硬盘支持并能够通过WMI获取)。 2. 由于我们无法回到一年前,所以通常的做法是定期录,然后计算差值。 因此,如果用户没有历史录,那么只能获取当前累计的通电时间,而无法直接获取“一年来”的累计时间。我们可以解释这一点,并建议用户现在开始录,一年后再比较。 不过,我们可以尝试读取硬盘的SMART数据中的通电时间(Power-On Hours),这个值是累计的。我们可以通过WMI来获取。 步骤: 1. 安装wmi模块(如果未安装):pip install wmi 2. 使用wmi模块查询Win32_DiskDrive类,但注意Win32_DiskDrive并不直接提供通电时间。 3. 实际上,我们需要查询Win32_PhysicalMedia类?或者使用WMI的MSStorageDriver_ATAPISmartData类来获取SMART数据。 然而,获取SMART数据在Windows下比较复杂,而且不是所有硬盘都支持。我们可以尝试使用第三方库如pySMART,但这里我们使用wmi来尝试获取。 实际上,通过WMI获取SMART数据,我们可以使用MSStorageDriver_ATAPISmartData类,但该类在WMI中的可用性取决于硬件和驱动。 另一种方法是使用Win32_DiskDrive的InstalledDate?但InstalledDate是安装日期,不是通电时间。 经过查阅,我们可以使用Win32_DiskDrive的StatusInfo属性?但似乎没有直接的方法。 更常见的是使用WMI的MSStorageDriver_ATAPISmartData类,但该类在WMI的root\wmi命名空间下。 因此,我们可以这样做: - 连接到root\wmi命名空间 - 查询MSStorageDriver_ATAPISmartData类 但是,这个类的结构比较复杂,而且不同硬盘厂商的SMART数据结构可能不同。 这里有一个参考:https://stackoverflow.com/questions/28423349/how-to-get-smart-data-using-wmi-in-python 由于问题要求获取一年来的硬盘通电时间,但如果没有历史录,我们只能获取当前累计的通电时间。因此,我们可以: - 获取当前累计的通电时间(以小时为单位) - 然后告诉用户,一年前如果录过,那么用当前值减去一年前的值就是这一年的通电时间。否则,建议用户现在开始录,一年后再看。 所以,代码将实现获取当前硬盘的累计通电时间。 步骤: 1. 导入wmi 2. 连接到root\wmi命名空间 3. 查询MSStorageDriver_ATAPISmartData类 4. 解析其中的数据(特别是VendorSpecific属性,其中包含SMART数据) 在SMART数据中,通电时间通常对应属性ID为9(0x09)的属性,其原始值(Raw)就是累计通电小时数。 但是,解析VendorSpecific需要按照规范。SMART数据块是一个字节数组,其中每个属性的位置是固定的吗?实际上,每个属性占12个字节,属性ID在第一个字节,而原始值在第五个字节开始的4个字节(小端序)。 但是,由于不同硬盘可能有所不同,我们需要谨慎。 参考:https://en.wikipedia.org/wiki/S.M.A.R.T.#ATA_S.M.A.R.T._Attributes 代码实现: 注意:由于WMI的复杂性,可能不是所有硬盘都能成功获取。 下面是一个示例代码,尝试获取所有硬盘的累计通电时间(以小时为单位):</think>### 获取硬盘通电时间的 Python 实现 在 Windows 10 中,可以通过 WMI 接口获取硬盘的 SMART 数据中的通电时间(Power-On Hours)。以下是完整的 Python 实现方案: ```python import wmi import datetime def get_disk_power_on_hours(): c = wmi.WMI(namespace="root\\wmi") results = [] # 查询硬盘 SMART 数据 for disk in c.MSStorageDriver_ATAPISmartData(): try: # 解析 SMART 属性(属性 ID 9 表示通电时间) attributes = disk.VendorSpecific for i in range(2, len(attributes), 12): if attributes[i] == 9: # 提取小端序存储的通电小时数 hours = attributes[i+5] * 256 + attributes[i+4] results.append({ "disk_id": disk.InstanceName.split("\\")[1], "power_on_hours": hours }) except Exception as e: print(f"读取硬盘数据时出错: {str(e)}") return results # 获取并打印结果 if __name__ == "__main__": disks = get_disk_power_on_hours() current_date = datetime.datetime.now().strftime("%Y-%m-%d") print(f"硬盘通电时间报告 ({current_date}):") for i, disk in enumerate(disks, 1): print(f"硬盘 {i} (ID: {disk['disk_id']}):") print(f" 累计通电时间: {disk['power_on_hours']} 小时") print(f" 约合: {disk['power_on_hours']/24:.2f} 天") ``` ### 使用说明: 1. **安装依赖**:先执行 `pip install wmi` 2. **运行要求**:需要以管理员权限运行脚本 3. **结果解读**: - `power_on_hours` 表示硬盘累计通电时间 - 要获取一年数据,需定期运行脚本并录结果 - 一年后对比历史数据即可得到年度通电时间 ### 注意事项: 1. 部分旧硬盘可能不支持 SMART 数据读取 2. SSD 和 HDD 均可获取,但部分外接硬盘可能无法读取 3. 建议每月运行一次并录结果到 CSV 文件 4. 如需精确年度数据,需要从一年前开始录基准值
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值