Gdata导出文档----冲突错误

时间:2012-06-28 16:57:00

标签: python gdata

所以这是相当令人担忧的 - 我希望有人可以帮我一把。

我正在使用python脚本下载google doc电子表格,然后将它们备份到我们的服务器上。大部分时间,它运作良好,但每隔一段时间我就会得到一个看起来像这样的错误:

gdata.service.RequestError: {'status': 409, 'body': '', 'reason': 'Conflict'}

以下是我正在使用的所有代码。有人知道导出函数是否有一些可能导致这种情况的奇怪行为?

QC_GoogleDoc_Spreadsheet_AutoLog
Author: Christopher James Johnson
Date: May 22, 2012

try:
  from xml.etree import ElementTree
except ImportError:
  from elementtree import ElementTree
import gdata.spreadsheet.service
import gdata.service
import atom.service
import gdata.spreadsheet
import gdata.docs.service
import atom
import getopt
import sys
import string
import time
import shutil
import os
import getpass
import tempfile
import csv
import time
import datetime
import glob


def main():

    archiver = backUpper()


class backUpper():

  def __init__(self):





gd = gdata.docs.service.DocsService()    


self.gd_client = gdata.docs.service.DocsService()  
self.gd_client.email = 'xxxx.xxxx'
self.gd_client.password = 'xxxxxxxx'
self.gd_client.source = 'Spreadsheets GData Sample'
self.gd_client.ProgrammaticLogin()
self.curr_key = ''
self.curr_wksht_id = ''
self.list_feed = None
self.autoLogPath = ""


spreadsheets_client = gdata.spreadsheet.service.SpreadsheetsService()
spreadsheets_client.email = self.gd_client.email
spreadsheets_client.password = self.gd_client.password
spreadsheets_client.source = "My Fancy Spreadsheet Downloader"
spreadsheets_client.ProgrammaticLogin()

feed = spreadsheets_client.GetSpreadsheetsFeed()

for i, entry in enumerate(feed.entry):
  if isinstance(feed, gdata.spreadsheet.SpreadsheetsSpreadsheetsFeed):
    if isinstance(entry, gdata.spreadsheet.SpreadsheetsSpreadsheet):
      print entry.title.text
      x = entry.id.text
      print x
      self.Download(entry)


self.DeleteTemporaryFiles()


def Download(self, entry):
line = entry.id.text
title = entry.title.text
splitLine = line.split('/')
key = splitLine[-1]

backUpDir = R'\\cob-hds-1\compression\QC\QCing\otherFiles\GoogleDocBackUp' + '\\'

now = datetime.datetime.now()
hour = now.hour
today = datetime.date.today()
if not os.path.exists(backUpDir + str(today)):
  os.mkdir(backUpDir + str(today))
if not os.path.exists(backUpDir + str(today) + '\\' + str(hour)):
  os.mkdir(backUpDir + str(today) + '\\' + str(hour))

backupDir = backUpDir + str(today) + '\\' + str(hour)

tempfile.tempdir = backupDir
file_path = tempfile.mkstemp(suffix='.xls')    

uri = 'http://docs.google.com/feeds/documents/private/full/%s' % key

spreadsheets_client = gdata.spreadsheet.service.SpreadsheetsService()
spreadsheets_client.email = self.gd_client.email
spreadsheets_client.password = self.gd_client.password
spreadsheets_client.source = "My Fancy Spreadsheet Downloader"
spreadsheets_client.ProgrammaticLogin()

# ...
docEntry = self.gd_client.GetDocumentListEntry(uri)

docs_auth_token = self.gd_client.GetClientLoginToken()
self.gd_client.SetClientLoginToken(spreadsheets_client.GetClientLoginToken())
self.gd_client.Export(docEntry, file_path[1])
shutil.copy(file_path[1], backupDir + '//' + title + '.xls')


os.close(file_path[0])
self.gd_client.SetClientLoginToken(docs_auth_token)     


if __name__ == '__main__':
main()

所以可怕的部分 - 这个刚开始发生在这个早上!一切都很棒......今天早上......这个和其他Gdata使用python脚本开始发生了一些事情!请帮忙!

谢谢!

编辑:当时我的一位同事正在研究其中一个电子表格,我们的两个程序都崩溃了。 (我支持谷歌文档和他的写作。如果我们同时在同一个电子表格上工作,这会产生问题吗?)

0 个答案:

没有答案