我正在尝试修改Python脚本。该脚本获取股票价格并在Python控制台中打印出来。我正在尝试更改此值以将价格写入文本文件。这是原始代码:
类BerryWrapper(EWrapper):
def __init__(self):
pass
def tickPrice(self, tickerId, field, price, canAutoExecute):
if (field == 4):
print 'Last[%s,%s,%s]' % (tickerId, price, canAutoExecute)
elif (field == 1):
print 'Bid[%s,%s,%s]' % (tickerId, price, canAutoExecute)
elif (field == 2):
print 'Ask[%s,%s,%s]' % (tickerId, price, canAutoExecute)
这似乎工作正常。我将这些更改修改为:
类BerryWrapper(EWrapper):
def __init__(self):
pass
with open('log_me.txt','w') as file:
def tickPrice(self, tickerId, field, price, canAutoExecute):
if (field == 4):
print 'Last[%s,%s,%s]' % (tickerId, price, canAutoExecute)
file.write('Last[%s,%s,%s]' % (tickerId, price, canAutoExecute))
elif (field == 1):
print 'Bid[%s,%s,%s]' % (tickerId, price, canAutoExecute)
file.write('Last[%s,%s,%s]' % (tickerId, price, canAutoExecute))
elif (field == 2):
print 'Ask[%s,%s,%s]' % (tickerId, price, canAutoExecute)
file.write('Last[%s,%s,%s]' % (tickerId, price, canAutoExecute))
当我跑步时,我收到以下消息:
id:关闭文件的I / O操作
connectionClosed
我不确定的是时机。我想打开文件一次然后让它保持打开状态,而所有这些价格都来了并且写完了。你知道我需要做什么吗?
答案 0 :(得分:1)
更改
的顺序with open('log_me.txt','w') as file:
def tickPrice(self, tickerId, field, price, canAutoExecute):
as
def tickPrice(self, tickerId, field, price, canAutoExecute):
with open('log_me.txt','w') as file:
但您应该关心w
中的open
标记会在tickPrice
的每次调用中重写您的文件。您可以使用将append data提交的标记a
来省略此行为。