我最近开始学习 Python,我有一个应用程序,我想创建一个文本文件,每两秒记录一分钟数据,然后从一个新文件重新开始。我把它写在打开的文件被格式化为 SQL 和 SQL INSERT 查询的地方。
我遇到的麻烦是创建代码以实际正常工作。Python 本身可以正常工作,只需将新的 SQL 行插入到已打开的文件中,但输出如下所示:
[blank line is here because of the \n]
INSERT INTO table (column 1, column 2) VALUES ('7113', '1337');
INSERT INTO table (column 1, column 2) VALUES ('7113', '1337');
我的问题是我需要获取数据,因此顶部没有新行,最后一行没有分号。
这是我的来源:
from threading import Timer
import time
def start():
t = Timer(1.0,start)
foo = "7113"
bar = "1337"
date = time.strftime('%Y-%m-%d %H:%M:%S')
sql = "\nINSERT INTO table (column 1, column 2) VALUES ('%s', '%s');" % (foo, bar)
query = open(date + ".sql", "a")
query.write(sql)
query.close()
t.start()
start()
由于我的语言不是最好的,我想做的一个更简单的版本是:
- 让一个函数运行第一个代码,吐出
INSERT INTO table (column 1, column 2) VALUES ('7113', '1337');
前面没有多余的行但带有分号。 - 让另一个函数运行 58 次,
\n
在 SQL 查询之前添加行,在之后添加分号。 - 让最后一个函数运行第 60 次,包括
\n
但不带分号。 - 关闭当前文件并生成一个带有那一分钟时间戳的新文本文件,
2013-07-09 12-30-00.sql
然后重复该过程2013-07-09 12-31-00.sql
,以此类推。
我想在那之后还有很多事情,比如让 PHP 或 Python 脚本读取日期并执行它,或者我可以让所有这些都执行,然后按升序排列表格。但是,这可以在以后解决和研究。我只是想让这个工作,因为我现在已经搜索了几个小时关于如何做到这一点,但我找不到任何有用的东西。不过,我确信答案是显而易见的。
感谢阅读,希望对大家有所帮助!我现在已经多次使用这个网站来获取有用的花絮,这太棒了。想出这个主意的人都需要被称赞。
另外,如果有人有任何有用的 Python 学习资源(我是通过Codecademy学习的),我将不胜感激。这比学习 C++ 有趣多了。