我正在尝试编写一个while循环来检查文本文件的最后一行 - TransactionFile.txt
定期(每10秒),其中包含附加到文件的事务的数据。
基本上我有两个程序,一个将用户事务附加到一个文件中,另一个读取事务,这两个程序同时运行。
我遇到的问题是确定TransactionFile.txt
中当前的交易是否发生了变化。
这是我这样做的功能
def transactionCheck():
threading.Timer(10.0, transactionCheck).start()
fileSecLast = None
while True:
try:
file = open('TransactionFile.txt', 'r')
except FileNotFoundError:
print('TransactionFile.txt could not found.')
break
else:
file = open('TransactionFile.txt', 'r')
global fileLast
fileLast = file.readlines()[-1]
file.close
if fileLast == fileLast:
print('New transaction data found.')
print(fileLast)
callfunctionNonce = calcNonce()
elif fileLast == fileSecLast:
print('No new transaction data found.')
break
break
break
这给出了这个的输出:
TransactionFile.txt could not found.
TransactionFile.txt could not found.
TransactionFile.txt could not found.
New transaction data found.
MOWZ575728::max::sam::67890::2018-05-19 13:11:50.250116
New transaction data found.
MOWZ575728::max::sam::67890::2018-05-19 13:11:50.250116
New transaction data found.
MOWZ575728::max::sam::67890::2018-05-19 13:11:50.250116
New transaction data found.
DOYU363556::geoff::tim::14515::2018-05-19 09:12:06.250116
我想要实现的是,如果没有向TransactionFile.txt
输出No new transaction data found.
写入新事务,而不是再次打印出相同的事务。我应该怎么做呢?
我的预期输出应该是这样的:
TransactionFile.txt could not found.
TransactionFile.txt could not found.
New transaction data found.
MOWZ575728::max::sam::67890::2018-05-19 09:11:50.250116
No new transaction data found.
No new transaction data found.
New transaction data found.
DOYU363556::geoff::tim::14515::2018-05-19 09:12:06.250116
感谢您的反馈和帮助。
如果我的问题不清楚,我会尽力以不同的方式解释。
答案 0 :(得分:0)
你正在做复杂的方式。如果您可以设法确保文件从头开始退出,则应该这样做:
def transactionCheck():
file = open("TransactionFile.txt", 'r')
while True:
line = file.readline().strip()
if line:
print("New transaction:")
print(line)
print()
else:
print("No new transaction")
time.sleep(10)
答案 1 :(得分:0)
你永远不会给renderRooms
赋值,if条件不是真的。试试这个:
fileSecLast