You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python 3.10获取Mega.nz文件夹文件遇阻,求可行代码

问题:无法通过mega.py获取MEGAsync文件夹内的文件

尝试使用mega.py模块获取Mega.nz中MEGAsync文件夹内的文件已近一周,试过邮箱密码登录、文件夹公开链接,也参考了包括Stack Overflow在内的各类旧示例,但均报错(方法不存在、字典元素不存在等),推测这些示例基于旧版本模块。

使用的代码:

from mega import Mega
mega = Mega()
m = mega.login('example@example.com', 'example123')

# Get 'MEGAsync' folder
folder_name = 'MEGAsync'
folder = m.find(folder_name)

# Get the file list inside the folder
files = m.get_files_in_node(folder[0])

# Print file names on the list
for f in files:
    print(f['name'])

错误信息:

print(f['name'])

TypeError: string indices must be integers

实际获取到的files字典中不包含MEGAsync文件夹内的文件名,求可行代码示例。


可行代码示例

针对新版本mega.py,以下代码可以正确获取MEGAsync文件夹内的文件:

from mega import Mega

# 初始化并登录账号
mega = Mega()
m = mega.login('your_email@example.com', 'your_password')

# 查找MEGAsync文件夹(返回匹配的节点列表)
folder_name = 'MEGAsync'
target_folders = m.find(folder_name, exclude_deleted=True)

if not target_folders:
    print(f"未找到名为{folder_name}的文件夹")
else:
    # 取第一个匹配的文件夹(存在多个同名文件夹时可按需调整)
    target_folder = target_folders[0]
    # 获取文件夹内所有节点(返回字典,key为节点ID,value为节点详细信息)
    folder_contents = m.get_files_in_node(target_folder)
    
    # 遍历并打印文件夹内的文件名(过滤掉子文件夹)
    for node_id, node_detail in folder_contents.items():
        # type=1代表文件,type=0代表文件夹
        if node_detail['type'] == 1:
            print(node_detail['name'])

关键说明

  1. m.find()返回的是匹配名称的节点列表,需先判断是否找到目标文件夹
  2. m.get_files_in_node()返回的是键值对字典,直接遍历字典会拿到字符串类型的节点ID(这是你之前报错的核心原因),需通过items()遍历节点ID和对应信息
  3. 可通过node_detail['type']区分文件和文件夹,按需过滤内容

内容的提问来源于stack exchange,提问作者Darío Albarenque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 09:43:25