如何自动将文件生成到与colab笔记本相同的google驱动器文件夹?

时间:2019-03-22 19:36:23

标签: python google-drive-api google-colaboratory

我正在对一个简单的Wikipedia转储文件执行LDA,但是我要遵循的代码需要将文章输出到文件。我需要一些指导,因为python和colab确实很广泛,而且我似乎无法找到针对此特定问题的答案。这是我用于安装Google驱动器的代码:

!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials

# Authenticate the user
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

# Get your file
fileId ='xxxx'
fileName = 'simplewiki-20170820-pages-meta-current-reduced.xml'
downloaded = drive.CreateFile({'id': fileId})
downloaded.GetContentFile(fileName)

这是罪魁祸首,此代码正在尝试根据文章创建文件

if not article_txt == None and not article_txt == "" and len(article_txt) > 150 and is_ascii(article_txt):
                            outfile = dir_path + str(i+1) +"_article.txt"
                            f = codecs.open(outfile, "w", "utf-8")
                            f.write(article_txt)
                            f.close()
                            print (article_txt)

我已经尝试了很多事情,我无法全部回忆。基本上,我需要知道的是如何转换此代码,以便它可以与Google Drive一起使用。我已经尝试了许多小时的解决方案了。我记得做的一件事就是将这段代码转换成这个

file_obj = drive.CreateFile()
file_obj['title'] = "file name"

但是随后出现错误“预期的str,字节或os.PathLike对象,而不是GoogleDriveFile”。这不是如何上传文件并使用colab打开文件的问题,因为我已经知道如何使用XML文件进行操作,我需要知道的是如何通过我的colab脚本生成文件并将其放置在同一文件夹中作为我的脚本。任何帮助,将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定问题是否出在生成文件或将它们复制到google驱动器上,如果是后者,一种更简单的方法是按如下方式将驱动器直接安装到实例上

from google.colab import drive

drive.mount('drive')

然后,您可以像访问硬盘一样访问驱动器中的任何项目,并使用bash命令复制文件:

!cp filename 'drive/My Drive/folder1/'

另一种替代方法是使用shutil

import shutil

shutil.copy(filename, 'drive/My Drive/folder1/')
相关问题