使用python下载MEGA文件时出现问题

问题描述

我正在尝试使用 Python p 库中的以下代码从我的 MEGA 帐户下载文件

mega.py

然而,它总是返回:

from mega import Mega

mega = Mega()
m = mega.login('[email protected]','example')
file = m.find('example.txt')
m.download(file,'D:\\Desktop')

实际上,当我进入文件夹 (C:\Users\vrida\AppData\Local\Temp) 时,我找到了一个类似于我想要下载的临时文件,但名为 megapy_example

我看到以下网站有解决问题的讨论:

https://www.reddit.com/r/learnpython/comments/mw6is2/download_file_from_mega_using_megapy/

要求在代码添加以下几行:

 Traceback (most recent call last):

  File "D:\Programas\aNaconda\lib\shutil.py",line 788,in move
    os.rename(src,real_dst)

PermissionError: [WinError 32] The file is already being used by another process: 'C:\\Users\\vrida\\AppData\\Local\\Temp\\megapy_xdste432' -> 'example.txt'


During handling of the above exception,another exception occurred:

Traceback (most recent call last):

  File "<ipython-input-26-c3f75106fafb>",line 1,in <module>
    m.download(file)

  File "D:\Programas\aNaconda\lib\site-packages\mega\mega.py",line 564,in download
    return self._download_file(file_handle=None,File "D:\Programas\aNaconda\lib\site-packages\mega\mega.py",line 745,in _download_file
    shutil.move(temp_output_file.name,output_path)

  File "D:\Programas\aNaconda\lib\shutil.py",line 803,in move
    os.unlink(src)

PermissionError: [WinError 32] The file is already being used by another process: 'C:\\Users\\vrida\\AppData\\Local\\Temp\\megapy_example' 

就我而言,continue 命令不起作用,所以我只是输入了 pass 命令。代码运行了,但不知道文件是否真的保存了。

有人可以帮我吗?我真的需要下载文件并保存它们。

如果它不能通过 try: m.download(file,'D:\\Desktop') except PermissionError: continue 库运行,你们会知道如何通过 Python 从这样的公共链接下载: https://mega.co.nz/#!cSZCELDb!5O57KMVMIgrPiH5fnaefWeNPDqoDWzGbY-sZkdTUdNk

解决方法

库中有一个错误,它在移动文件之前没有关闭文件。您可以通过编辑源代码来修复该错误:

  1. D:\Programas\aNaconda\lib\site-packages\mega\mega.py 处打开文件
  2. 转到第 745 行所在的第 shutil.move(temp_output_file.name,output_path) 行。
  3. 在其正上方添加 temp_output_file.close()
  4. 保存并重试。