我想将python变量结果保存到文件

问题描述:

当这个文件运行时给出相应的输出值为;我想将python变量结果保存到文件

# test BLE Scanning software 
# jcs 6/8/2014 


import MySQLdb as my 
import blescan 
import sys 


import bluetooth._bluetooth as bluez 

dev_id = 0 

db = my.connect(host="localhost", 
user="root", 
passwd="root", 
db="test" 
) 

cursor = db.cursor() 

try: 
    sock = bluez.hci_open_dev(dev_id) 
    print "ble thread started" 

except: 
    print "error accessing bluetooth device..." 
     sys.exit(1) 

blescan.hci_le_set_scan_parameters(sock) 
blescan.hci_enable_le_scan(sock) 




while True: 
    returnedList = blescan.parse_events(sock, 10) 
    print "----------" 
    for beacon in returnedList: 

     print beacon 


sql = "insert into beacon VALUES(null, '%s')" % \ 
(beacon) 

number_of_rows = cursor.execute(sql) 
db.commit() 

db.close() 

我想存储在一个文本文件中

cf:68:cc:c7:33:10,b9407f30f5f8466eaff925556b57fe6d,13072,52423,-74,-78 
cf:68:cc:c7:33:10,74696d6f74650e160a181033c7cc68cf,46608,13255,-52,-77 
da:f4:2e:a0:70:b1,b9407f30f5f8466eaff925556b57fe6d,28849,11936,-74,-79 
da:f4:2e:a0:70:b1,74696d6f74650e160a18b170a02ef4da,46769,28832,46,-78 
dd:5d:d3:35:09:dd,8aefb0316c32486f825be26fa193487d,1,1,-64,-78 
c3:11:48:9b:cf:fa,8aefb0316c32486f825be26fa193487d,0,0,-64,-73 
fd:5b:12:7f:02:e4,b9407f30f5f8466eaff925556b57fe6d,740,4735,-74,-79 
fd:5b:12:7f:02:e4,74696d6f74650e160a18e4027f125bfd,46820,639,18,-80 
dd:5d:d3:35:09:dd,8aefb0316c32486f825be26fa193487d,1,1,-64,-77 

等输出......然后写在文本文件中的这些值存储。对于文本文件,是否可以生成文本文件作为脚本的一部分?由于

+0

[是!](https://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-文件)你的灯塔是一个简单的列表吗? –

+0

是,我想保存 iBeacon显示MAC地址 iBeacon显示UDID iBeacon显示主编号 iBeacon显示次编号 发射功率1个处 结果到MySQL数据库 – shane

试试这个为你的循环

while True: 
    returnedList = blescan.parse_events(sock, 10) 
    print "----------" 
    f = open('bluez.txt', 'a+') 
    for beacon in returnedList: 
     print beacon 
     f.write(','.join(beacon)+'\n') 
    f.close() 

编辑:现在追加模式

+0

您确定要覆盖该文件每通过while循环的时间? –

+0

虽然不会覆盖,但我想附加结果 – shane

+0

是否可以将这些值保存在mysql数据库表中? – shane

,如果你想要的是将数据存储在文件中,这样你就可以打开它后,最简单的方法是使用在Pickle(或cPickle)模块 类似:

import cPickle 

#store the data in file 

with open('/path/to/file.txt', 'wb') as f: 
    cPickle.dump(returnedList, f) 

#to read the data 

loaded_returnedList = cPickle.load(open('/path/to/file.txt')) 

print loaded_returnedList == returnedList # Prints True 

现在如果你想要的是存储可视化存储中的数据(可是在Excel中后打开它),在csv模块是你

import csv 

with open('/path/to/file', 'w') as f: 
    writer = csv.writer(f) 

    for beacon in returnedList: 
     writer.writerow(beacon) 
+0

它给了我一个作家= csv.writer(f)预计一个缩进块 – shane

+0

你可能应付它没有4空格在开始。记住在python缩进中它非常重要。 – aleivag