如何获取浏览器的默认下载路径?(更好的获取下载路径)
评论
收藏

如何获取浏览器的默认下载路径?(更好的获取下载路径)

经验分享
曾诚
2024-04-30 13:33·浏览量:1489
曾诚
发布于 2024-04-27 17:24更新于 2024-04-30 13:331489浏览

大家都知道,影刀的获取系统文件夹路径

默认都是获取的C盘下的Downloads文件夹。

但是我们有时候不会使用系统默认的,我们会改成我们专门的文件夹来作为下载文件夹。

那么问题来了,如果这样的话,我们需要定死变量,也就是我永远设置下载文件夹的位置是D:\RPA\Downloads,这样在换一个电脑环境的时候就会报错,那么有什么办法能解决这个问题呢。在我之前的文章有提到过,为了防止浏览器弹出【恢复之前已打开的网页】这个弹窗,我们对浏览器的配置文件做出了修改,那么既然浏览器的配置是在这里,会不会也会存放下载文件夹的信息呢?

没错,是有的。我们已edge为例,首先,可以在edge浏览器打开edge://version/

此时会显示这样的界面

我们打开上面的文件路径,找到Preferences这个文件,打开之后可以看到一个json格式的数据。里面会有这样一个字段

里面会显示你当前配置的下载文件夹的位置,那么我们就可以通过这个来获取。

然后在写浏览器下载指令或者其他情况时就可以用到这个方法来得到下载位置,也不用怕不同电脑,不同配置的情况下载出错啦。

python代码获取edge下载文件夹的方式我也放在下面了,其他浏览器同样适用:

方法一:(获取)建议使用

import json
import os


def get_edge_download_path():
    settings_path = os.path.join(
        os.environ['LOCALAPPDATA'],
        r'Microsoft\Edge\User Data\Default\Preferences')
    with open(settings_path, 'r',
              encoding='utf-8') as f:
        data = json.load(f)
    return data["download"]["default_directory"]

方法二:(强行改配置)

import json
import os


def set_edge_download_path():
    settings_path = os.path.join(
        os.environ['LOCALAPPDATA'],
        r'Microsoft\Edge\User Data\Default\Preferences')
    try:
        with open(settings_path, 'r+',
                  encoding='utf-8') as f:
            data = json.load(f)
            data["download"]["default_directory"] = "你想设置的文件夹路径"
            data["savefile"]["default_directory"] = "你想设置的文件夹路径"
            f.seek(0)
            json.dump(data, f)
            f.truncate()
    except PermissionError as e:
        print("疑似浏览器配置已打开,或者文件只读", e)


收藏1
全部评论1
最新
发布评论
评论