2017-07-25 51 views
0

我目前正在將BigQuery中的表導出爲G.C.S作爲另一種備份形式。這是迄今爲止我保存的文件名爲「firebase_connectioninfo.csv」的代碼。將文件名保存爲「日期 - 備份」

# Export table to GCS as a CSV 

data = 'dataworks-356fa' 
destination = 'gs://firebase_results/firebase_backups1/Firebase_ConnectionInfo.csv' 

def export_data_to_gcs(data, Firebase_ConnectionInfo, destination): 
    bigquery_client = bigquery.Client(data) 
    dataset = bigquery_client.dataset('FirebaseArchive') 
    table = dataset.table('Firebase_ConnectionInfo') 
    job_name = str(uuid.uuid4()) 

    job = bigquery_client.extract_table_to_storage(
     job_name, table, 'gs://firebase_results/firebase_backups1/Firebase_ConnectionInfo.csv') 
    job.source_format = 'CSV' 

    job.begin() 

    wait_for_job(job) 

def wait_for_job(job): 
    while True: 
     job.reload() 
     if job.state == 'DONE': 
      if job.error_result: 
       raise RuntimeError(job.errors) 
      return 
     time.sleep(1) 

export_data_to_gcs(data, 'Firebase_ConnectionInfo', destination) 

我想將此文件命名爲「thedate_firebase_connectioninfo_backup」。如何在Python腳本中添加此命令?

+0

你的意思是你想爲當前日期添加到文件名?你會使用'datetime'模塊。 https://docs.python.org/2/library/datetime.html –

+0

是的,這就是我的意思。我只是把datetime.date + firebase_connecitoninfo? –

+0

我會提供一個解答步驟的答案。 –

回答

1

嘗試這樣:

import datetime 

datestr = datetime.date.today().strftime("%B-%d-%Y") 
destination = 'gs://firebase_results/firebase_backups1/' + datestr + '_Firebase_ConnectionInfo.csv' 
2

因此,這是你的字符串:

gs://firebase_results/firebase_backups1/Firebase_ConnectionInfo.csv' 

我的建議是把它變成自己的變量:

filename = 'gs://firebase_results/firebase_backups1/Firebase_ConnectionInfo.csv' 

此外,我們應該把日期放在一個地方。我們可以處理格式化字符串一對夫婦不同的方式,但是這是我的首選方法:

filename = 'gs://firebase_results/firebase_backups1/{date}-Firebase_ConnectionInfo.csv' 

我們可以調用format()filename,像這樣的日期:

from datetime import datetime 
date = datetime.now().strftime("%M-%D-%Y") 
filename.format(date=date) 

另一種辦法,我們可以格式化字符串將是舊的字符串格式化樣式%。我討厭這種方法,但有些人喜歡它。我認爲它可能會更快。

date = datetime.now().strftime("%M-%D-%Y") 
filename = 'gs://firebase_results/firebase_backups1/%s-Firebase_ConnectionInfo.csv' % date 

或者,您也可以使用其他人的答案,只是添加字符串像

"This " + "is " + "a " + "string." 
outputs: "This is a string." 
+0

謝謝, @Ilya。我應該在發帖前真正校對我的帖子...... –

相關問題