如何使用 python 脚本从 GoogleColab 下载文件?

yam*_*oel 1 python-3.x google-colaboratory

我有一个创建.csv文件的 python 脚本。

当我尝试通过以下方式下载脚本中的文件Vectors.csv(由代码创建的文件)时

df.to_csv("Vectors.csv", sep=",", index=False)
files.download("Vectors.csv")  
Run Code Online (Sandbox Code Playgroud)

我明白了

Traceback (most recent call last):
File "/content/gdrive/My Drive/Deep/makeVectors.py", line 52, in <module>
files.download("Vectors.csv")
File "/usr/local/lib/python3.6/dist-packages/google/colab/files.py", line 178, in download
'name': _os.path.basename(filename),
File "/usr/local/lib/python3.6/dist-packages/google/colab/output/_js.py", line 35, in eval_js
kernel = _ipython.get_kernel()
File "/usr/local/lib/python3.6/dist-packages/google/colab/_ipython.py", line 28, in get_kernel
return get_ipython().kernel
AttributeError: 'NoneType' object has no attribute 'kernel'
Run Code Online (Sandbox Code Playgroud)

然而,当我在 Colab 单元格中键入相同的命令时,它工作得很好。

浏览器:谷歌浏览器

And*_*w F 5

Google Colab 团队制作了一个笔记本,涵盖上传/下载外部数据。其中一项功能是将文件下载到本地系统

df将他们的示例调整为保存为 csv 文件的Pandas Dataframe :

from google.colab import files
import pandas as pd

df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
df.to_csv('dataframe.csv')

files.download('dataframe.csv')
Run Code Online (Sandbox Code Playgroud)

OP 情况的更具体示例(在 Colab 单元内运行 Python 脚本):首先是脚本

# makeVectors.py
import pandas as pd
df = pd.DataFrame(data={'col1': [1, 2], 'col2': [3, 4]})
df.to_csv('dataframe.csv')
Run Code Online (Sandbox Code Playgroud)

还有 Colab 细胞

!python3 makeVectors.py

from google.colab import files
files.download('dataframe.csv')
Run Code Online (Sandbox Code Playgroud)

第二个示例有一些问题,特别是google.colab包提供的额外功能(以及任何常规的 iPython 魔法)将无法在python3调用中工作。