OneDrive 使用 Python 释放空间

Mat*_*Mat 4 python onedrive

我一直使用 OneDrive 存储大量图像,现在需要处理这些图像,因此我已将 OneDrive 文件夹同步到我的计算机,这相对不占用磁盘空间。但是,由于我open()的代码中必须包含它们,因此它们都会被下载,这将占用比我计算机上的可用内存更多的空间。我可以手动使用右键单击上下文菜单中的“释放空间”操作,这可以使它们保持同步而不占用空间。

我正在寻找一种方法来做同样的事情,但是在我的代码中,在我处理每张图像之后。

试图找到如何获取上下文菜单项的命令,我找到了注册表中的这两个位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell

HKEY_LOCAL_MACHINE\SOFTWARE\Classes*\shellex\ContextMenuHandlers

然而我找不到任何与之相关的东西,而且那些树有太多的键来盲目检查。此外,此论坛帖子(外部链接)显示了几种自动释放空间的方法,但它似乎会影响所有文件,并且仅限于全天间隔。

那么有什么方法可以访问该命令或释放 python 中的空间吗?

Mat*_*Mat 6

根据这篇微软帖子,可以调用Attrib.exe对文件进行此类操作。

这个小片段完成了每个文件使用的工作。如链接文章所示,还可以使用参数对文件夹的完整内容执行此操作/s,等等。

import subprocess

def process_image(path):
    # Open the file, which downloads it automatically
    with open(path, 'r') as img:
        print(img)

    # Free up space (OneDrive) after usage
    subprocess.run('attrib +U -P "' + path + '"')
Run Code Online (Sandbox Code Playgroud)

下载和释放空间相当快,但在大量并行运行的情况下,可能会在短时间内消耗一些磁盘空间。但总的来说,这是相当瞬时的。