如何在Google App Engine上托管的脚本中使用外部静态数据文件?

时间:2015-10-26 01:06:57

标签: python google-app-engine

我在Google App Engine上托管了一个Python脚本来访问Twitter API并存储结果。

我有一个静态csv文件(在我的本地计算机上),其中包含我想从中收集数据的所有Twitter帐户的名称。

如何让我的Google App Engine托管的脚本可以访问此文件?

2 个答案:

答案 0 :(得分:1)

静态CSV应该可以像任何其他python源文件一样上传。请注意,将其上传为static文件 - 这些文件通常来自不同的地方,而您的代码无法访问它们 1

要打开/读取静态CSV,您需要使用相对路径。例如如果您的目录如下所示:

foo
 | - script.py
bar
 | - data.csv

然后从data.csv阅读script.py,您可以执行以下操作:

import os
data_csv_filename = os.path.join(
    os.path.dirname(__file__), 'bar', 'data.csv')
with open(data_csv_filename) as data_csv_file:
    ...

1 如果您确实想要提供csv文件以及让您的应用程序读取数据,您也可以在app.yaml中将其设置为“application_readable”...功能

答案 1 :(得分:1)

如果您不想每次更改CSV文件时都不愿意处理上传代码的不便,可以将其保存为Google表格,每个单元格一个值。将其发布到网上。然后,将其读入您的应用程序,如下所示:

from google.appengine.api import urlfetch

csv_url = 'https://docs.google.com/spreadsheets/d/<key>/export?format=csv'

csv_response = urlfetch.fetch(csv_url, allow_truncated=True) 

if csv_response.status_code == 200:
  row_list = csv_response.content.split('\n')
  for row in row_list:
    item_list = row.split(',')

    do stuff