我正在寻找语法定义,例如,示例代码,wiki等,用于从python执行LOAD DATA LOCAL INFILE命令.
我相信如果可以的话,我也可以使用mysqlimport,所以欢迎任何反馈(和代码片段),这是更好的路线.谷歌搜索在当前信息方面没有太多变化
两种情况下的目标都是相同的:自动将具有已知命名约定和日期结构的数百个文件加载到单个MySQL表中.
大卫
我想使用for循环打印两个日期之间的每个日期.实际上要将它与MySQL查询合并,将日期传递给查询本身并输入到输出的文件名中.
那么,我该如何改变呢:
sum = 0
for i in range(1,11):
print sum
sum += i
Run Code Online (Sandbox Code Playgroud)
对此?
InputDate = '2009-01-01'
for i in range('2009-01-01','2009-07-01'):
print InputDate
InputDate += i
Run Code Online (Sandbox Code Playgroud)
我意识到rrule中有一些功能可以完成这个功能:
a = date(2009, 1, 1)
b = date(2009, 7, 1)
for dt in rrule(DAILY, dtstart=a, until=b):
print dt.strftime("%Y-%m-%d")
Run Code Online (Sandbox Code Playgroud)
但是,我只限于旧版本的python.
这是我尝试做的shell脚本版本,如果这有助于澄清:
while [InputDate <= EndDate]
do
sql="SELECT Date,SUM(CostUsd) FROM DailyStats WHERE Date = '$InputDate' GROUP BY Date"
name=$(mysql -h -sN -u -p -e "$sql" > DateLoop-$InputDate.txt db)
echo "$name"
InputDate=$(( InputDate + 1 …Run Code Online (Sandbox Code Playgroud) 我收到此错误:
File "/DateDbLoop.py", line 33
d.Id""" % (str(day), str(2840))"
^
SyntaxError: EOL while scanning single-quoted string
Run Code Online (Sandbox Code Playgroud)
这是脚本.有4个双引号可以打开这个,但我不确定如何正确关闭它?
跟进问题:
这个%(str(day),str(2840))是否需要同时进入sql变量和os.system()调用?
#!/usr/bin/python
import datetime
import sys, os, time, string
a = datetime.date(2009, 1, 1)
b = datetime.date(2009, 2, 1)
one_day = datetime.timedelta(1)
day = a
while day <= b:
print "Running query for \"" + str(day) + "\""
sql=""""SELECT
d.Date,
SUM(d.Revenue),
FROM Table d
WHERE d.Date = '%s'
AND d.Id = %s
GROUP BY d.Date
""" % (str(day), str(2840))"
os.system('mysql -h -sN …Run Code Online (Sandbox Code Playgroud)