[英]Python: Checking and adding to a text file
我一直在研究这个问题,并且谷歌搜索了几个小时。 我似乎无法弄清楚出了什么问题。
此程序的目的是检查股票市场自动收报机符号的文本文件,并仅在它不在文件中时添加自动收报机。
有两件事情出错了。 当文本文件为空时,它根本不会添加任何代码。 当文本文件中只有一个字符时,它会添加您提供的每个代码,无论该代码是否已经在列表中。
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(ticker)以添加用户输入的代码。
首先。
我建议用
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])
它对我来说似乎有效。
if ticker==line:
return True
else:
return False
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.