把Windows 10的Windows聚焦中的美图Get出来!
2017.02.27 19:20:28

Windows 10在联网状态下,Windows聚焦会推送一些壁纸,非常漂亮。比如:

它们都存放在哪里呢?

在这里:C:\Users\你自己的用户名\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets

但是这里面的图片是没有后缀名的,那么要挑选起来就很不方便,作为程序员总不能每次都手动添加.JPG后缀名吧?

思路:用程序把文件复制到自己的目录,并添加上.JPG后缀名。这样你就可以挑挑拣拣了。

我们用Python来做,挺简单的。废话不多说了,上代码一目了然(windows_focus.py)。

"""提取Windows 10的Windows聚焦文件夹中图片,并添加后缀名.JPG。Python 3.5及以上版本。"""

import os
import shutil
import sys
import asyncio


class PictureUtil:
    """Windows聚焦文件夹中图片处理工具类"""

    def __init__(self):
        if not len(sys.argv) == 3:
            print('格式错!正确格式:python windows_focus.py 系统用户名 保存路径')
            sys.exit()
        else:
            self.user_name = sys.argv[1]
            self.destination_dir = sys.argv[2]
            self.source_path = os.path.join(
                'C:/Users/{user_name}'.format(user_name=self.user_name),
                'AppData/Local/Packages',
                'Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy/LocalState/Assets'
            )
            self.original_files = self.get_original_files()

    def get_original_files(self):
        """获取Windows聚焦文件夹中原始图片名"""

        return os.listdir(self.source_path)

    async def copy_picture(self, original_file, destination_file):
        """复制图片到目标路径"""

        shutil.copy(original_file, destination_file)

    def just_do_it(self):
        """任务处理"""

        tasks = [self.copy_picture(os.path.join(self.source_path, o),
                                   os.path.join(self.destination_dir, o+'.JPG'))
                 for o in self.original_files]
        loop = asyncio.get_event_loop()
        try:
            loop.run_until_complete(asyncio.wait(tasks))
        finally:
            loop.close()
        print('Done!')


PICTURE_UTIL = PictureUtil()
PICTURE_UTIL.just_do_it()

运行时只需比如这样子:python windows_focus.py gua .\image

只要喜欢,无论难易,你都可以借助Python愉快地实现自己的思路。这就是Python方便及魅力之处吧?用Python无关乎逼格高低,Just for fun~


(1)

发表评论请先登录或注册