使用 python 下载 MEGA 文件时出现问题
Problem downloading MEGA files with python
我正在尝试使用 Python 的 mega.py
库中的以下代码从我的 MEGA 帐户下载文件:
from mega import Mega
mega = Mega()
m = mega.login('example@example.com', 'example')
file = m.find('example.txt')
m.download(file, 'D:\Desktop')
然而,它总是返回:
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'
实际上,当我进入文件夹 (C:\Users\vrida\AppData\Local\Temp) 时,我找到了一个临时文件,就像我要下载的文件一样,但名为 megapy_example.
我看到以下站点有解决问题的讨论:
https://www.reddit.com/r/learnpython/comments/mw6is2/download_file_from_mega_using_megapy/
要求在代码中添加以下行:
try:
m.download(file, 'D:\Desktop')
except PermissionError:
continue
在我的例子中,continue 命令不起作用,所以我简单地输入了 pass 命令。代码运行,但不知道文件是否真的保存了
有人可以帮助我吗?我真的需要下载文件并保存它们。
如果它不能通过 mega.py
库工作,你们会以某种方式知道如何通过 Python 从 public link 下载:
https://mega.co.nz/#!cSZCELDb!5O57KMVMIgrPiH5fnaefWeNPDqoDWzGbY-sZkdTUdNk
库中有一个错误,它在移动文件之前没有关闭文件。您可以通过编辑源代码来修复错误:
- 打开位于
D:\Programas\aNaconda\lib\site-packages\mega\mega.py
的文件
- 转到第
745
行,第 shutil.move(temp_output_file.name, output_path)
行所在的位置。
- 在其正上方添加
temp_output_file.close()
。
- 保存并重试。
我正在尝试使用 Python 的 mega.py
库中的以下代码从我的 MEGA 帐户下载文件:
from mega import Mega
mega = Mega()
m = mega.login('example@example.com', 'example')
file = m.find('example.txt')
m.download(file, 'D:\Desktop')
然而,它总是返回:
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'
实际上,当我进入文件夹 (C:\Users\vrida\AppData\Local\Temp) 时,我找到了一个临时文件,就像我要下载的文件一样,但名为 megapy_example.
我看到以下站点有解决问题的讨论:
https://www.reddit.com/r/learnpython/comments/mw6is2/download_file_from_mega_using_megapy/
要求在代码中添加以下行:
try:
m.download(file, 'D:\Desktop')
except PermissionError:
continue
在我的例子中,continue 命令不起作用,所以我简单地输入了 pass 命令。代码运行,但不知道文件是否真的保存了
有人可以帮助我吗?我真的需要下载文件并保存它们。
如果它不能通过 mega.py
库工作,你们会以某种方式知道如何通过 Python 从 public link 下载:
https://mega.co.nz/#!cSZCELDb!5O57KMVMIgrPiH5fnaefWeNPDqoDWzGbY-sZkdTUdNk
库中有一个错误,它在移动文件之前没有关闭文件。您可以通过编辑源代码来修复错误:
- 打开位于
D:\Programas\aNaconda\lib\site-packages\mega\mega.py
的文件
- 转到第
745
行,第shutil.move(temp_output_file.name, output_path)
行所在的位置。 - 在其正上方添加
temp_output_file.close()
。 - 保存并重试。