我目前正在将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 :(得分: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."
答案 1 :(得分:1)
尝试这样的事情:
import datetime
datestr = datetime.date.today().strftime("%B-%d-%Y")
destination = 'gs://firebase_results/firebase_backups1/' + datestr + '_Firebase_ConnectionInfo.csv'