Я работаю над уточнением кода dummy blockchain
и хочу сделать невозможным read and write csv
файл, если он уже используется. Что мне делать?
Я поместил start()
, join()
, acquire()
, release()
и т. Д. Во все места, о которых я мог подумать, но я вообще не работал. Как только я получил сообщение "Permission denied
", пока я открывал свой файл, он все же дал мне информацию в файле. (Все остальные функции работают правильно.)
def readBlockchain(blockchainFilePath, mode = 'internal'):
get_lock.acquire()
print("readBlockchain is called")
importedBlockchain = []
try:
with open(blockchainFilePath, 'r', newline='') as file:
blockReader = csv.reader(file)
for line in blockReader:
block = Block(line[0], line[1], line[2], line[3], line[4], line[5],line[6])
importedBlockchain.append(block)
print("Pulling blockchain from csv...")
get_lock.release()
return importedBlockchain
except:
if mode == 'internal':
blockchain = generateGenesisBlock()
importedBlockchain.append(blockchain)
writeBlockchain(importedBlockchain)
get_lock.release()
return importedBlockchain
else:
get_lock.release()
return None
Я ожидаю, что он не будет прочитан, если я открыл файл CSV, и будет прочитан после того, как я закрыл файл.
Я с нетерпением жду ваших ответов!
Спасибо.