python-尝试将数据上传到mysql,但写入txt除外

时间:2016-02-18 09:13:07

标签: python mysql

我编写了一个循环,将一些数据上传到MySQL数据库。当wifi无法正常工作时,应该将数据写入txt文件。问题是它不会写入txt文件。我初始化了数据库(称为"数据库")和光标(称为"光标")。 txt文件名为" test"。

编辑:通过试验插入和拔出以太网电缆,我意识到当我重新插入电缆时,一堆数据会自动以相同的时间戳发送(可能保存在ram或某个缓存中 - 每当我重新启动时都会发生这种情况程序也是如此,但规模较小)。你认为可能有另一种方式来备份吗?也许通过在txt文件上写入所有内容并在每1GB数据之后擦除txt文件(这样SD就不会在Raspberry Pi 2上获得全部内容)?

try:
  try:
    cursor.execute("""INSERT INTO table (collumn1) VALUES(%s)""", (temperature))
    database.commit
  except:
    text=open("test.txt","a")
    test.write(temperature + "\n")
    test.close()
except:
  print "FAIL"

2 个答案:

答案 0 :(得分:0)

由于write()函数需要一个字符缓冲区对象,因此您可能需要将温度转换为字符串,同时将其作为参数传递给write函数。

test.write(str(temperature) + "\n")

答案 1 :(得分:0)

这是我的方法:

import urllib, time, mysqldb


time.sleep(1) # Protects Overlap from execfile
url = "https://www.google.co.uk/"


try:
   checkcon = urllib.urlopen(url)
except Exception as e:
    """
    If the program gets a socket error
    it goes to sleep, after that it restarts
    and closes this Script
    """
    time.sleep(5)# retry timer
    execfile('/path/to/your/file.py')
    raise IOError(e)


# Now that you know connection is working
try:
    cursor.execute("""INSERT INTO table (collumn1) VALUES(%s)""", (temperature))
    database.commit()
except MySQLdb.IntegrityError as e:
    # Database Error
    with open ('test.txt'), 'a' as f:
        f.write(temperature)
        f.close()
    raise IOError(e)