Мне нужно в реальном времени при открытии и закрытии файла. Я использовал это:
#####
file1 = open("file.txt",mode = "r+")
file1.close()
if (file1.close()==True):
print(datetime.datetime.now())
но он не показывает результат.





вы дважды вызываете file1.close, только первый возвращает True!
Он не печатает время или дату, потому что file1.close() не возвращает никакого значения, поэтому оператор if не выполняется.
file1.close() просто закрывает дескриптор файла. Вместо этого вы можете распечатать время непосредственно перед закрытием файла следующим образом:
import datetime
file1 = open("file.txt", "r+")
print(datetime.datetime.now())
file1.close()
РЕДАКТИРОВАТЬ 1:
Если вам нужно получить разницу во времени между открытием и закрытием файла, вызовите datetime.now до и после, сохраните его в двух переменных и вычтите их, например:
import datetime
t1 = datetime.datetime.now()
file1 = open("file.txt", "r+")
# other operations here
file1.close()
t2 = datetime.datetime.now()
t = t2 - t1
print (t)
Это может напечатать что-то вроде 0: 00: 0.000114, которое находится в формате
minutes:seconds:microseconds
Итак, здесь требуется 114 микросекунд.
Мне нужна разница между временем открытия и временем закрытия файла.
@BikashBehera хорошо, я изменил, чтобы ответить на это, проверьте это
file.close() в большинстве случаев возвращает None, поэтому условие в операторе if не будет True, и отметка времени не будет напечатана.
Если вы знаете, что файл не будет явно закрыт, вы можете открыть файл с помощью диспетчера контекста.
from datetime import datetime
with open("file.txt", mode = "r+") as file1:
opened = datetime.now()
# do stuff with file
duration = datetime.now() - opened
print('File opened for {}'.format(duration.total_seconds()))
При выходе из диспетчера контекста файл будет автоматически закрыт, и вы можете использовать этот момент как приблизительное время закрытия.
метод
closeничего не возвращает.