我一直在努力,谷歌搜索几个小时。我似乎无法弄清楚出了什么问题。
此计划的目的是检查股票市场自动收报机符号的文本文件,并仅在文件中尚未包含时才添加自动收报机。
有两件事情出错了。当文本文件为空时,它根本不会添加任何代码。当文本文件中只有一个字符时,它会添加您提供的每个代码,无论该代码是否已经在列表中。
import re
def tickerWrite(tick):
readTicker = open('Tickers.txt', 'r')
holder = readTicker.readlines()
readTicker.close()
if check(tick) == False:
writeTicker = open('Tickers.txt', 'w')
holder.append(tick.upper() + '\n')
writeTicker.writelines(holder)
writeTicker.close()
def check(ticker):
with open('Tickers.txt') as tList:
for line in tList:
if re.search(ticker, line):
return True
else:
return False
另一个模块调用 AddReadTickers.tickerWrite(自动收报机)以添加用户输入的代码。
答案 0 :(得分:2)
首先。
我建议使用
if not check(tick):
而不是
if check(tick) == False:
然后。我认为最好使用
writeTicker = open('Tickers.txt', 'a')
你根本不需要持有人。
试图重写代码
from __future__ import print_function
import re
import sys
def tickerWrite(tick):
if not check(tick):
with open('Tickers.txt', 'a') as writeTicker:
print(tick.upper(), file=writeTicker)
def check(ticker):
with open('Tickers.txt') as tList:
for line in tList:
return bool(re.search(ticker, line))
if __name__ == '__main__':
tickerWrite(sys.argv[1])
它对我来说很有效。
答案 1 :(得分:0)
if ticker==line:
return True
else:
return False