Python:从创建的文本文件中保存变量

时间:2015-02-17 18:36:26

标签: python

我一直试图从文件中拆分行,并将拆分数据保存到变量中但没有成功。

我的代码现在是这样的:

cur = db.cursor() 
query = """INSERT INTO xxxx (var1, var2) VALUES (%s, %s)"""
with open('data.txt') as f:
    da = f.readlines()
    for line in da:
        values = (v1,v2)
        cur.execute(query,values)

但它并不像我想的那样工作。

我的请求是,如果您有任何人可以帮助我从data.txt获取所需的值并保存到变量,以便能够将它们作为查询发送到数据库。

data.txt现在有了这个:

0013a200419e323b <=>€#356894040#XBEE#0#STR:XBee frame#BAT:1#
0013a200419e323b <=>€#356894040#XBEE#0#STR:XBee frame#BAT:1#

所以var1必须等于0013a200419e323bvar2<=>€#356894040#XBEE#0#STR:XBee frame#BAT:1#

1 个答案:

答案 0 :(得分:2)

你需要在空白处拆分一次:

with open('data.txt') as f: 
    for line in f: # can iterate over f, no need for readlines
       values = line.split(None, 1) # splits on first whitespace only
       cur.execute(query,values)

您将获得一个包含所需两个子字符串的列表:

In [13]: s="0013a200419e323b <=>€#356894040#XBEE#0#STR:XBee frame#BAT:1#"

In [14]: s.split(None,1)
Out[14]: ['0013a200419e323b', '<=>\xe2\x82\xac#356894040#XBEE#0#STR:XBee frame#BAT:1#']
In [15]: var1,var2 = s.split(None,1)
In [16]: var1
Out[16]: '0013a200419e323b'
In [17]: var2
Out[17]: '<=>\xe2\x82\xac#356894040#XBEE#0#STR:XBee frame#BAT:1#'