如何在Python中获取文件打开与关闭时的实时时间?
解决文件打开/关闭时间记录的问题
我来帮你分析下代码的问题,以及如何正确获取文件打开和关闭的实时时间:
你的代码存在的问题
close()方法的返回值误区:file.close()方法执行后返回的是None,不是True。你调用了两次file1.close(),第一次已经关闭了文件,第二次调用依然返回None,所以if (file1.close()==True)这个条件永远不会成立,自然没有输出。- 时机错误:你想记录打开和关闭的时间,但代码里只在错误的条件下尝试打印关闭时间,完全没有记录打开时间的逻辑。
- 缺少模块导入:使用
datetime.datetime.now()前需要先导入datetime模块,否则会直接报错(如果你的实际代码里没导入的话)。
正确的实现方式
方式1:手动管理文件打开/关闭
import datetime # 记录文件打开的实时时间 open_time = datetime.datetime.now() file1 = open("file.txt", mode="r+") # 这里可以添加你的文件操作逻辑(比如读取内容、写入数据等) # 关闭文件并记录关闭时间 file1.close() close_time = datetime.datetime.now() # 打印时间 print(f"文件打开时间: {open_time}") print(f"文件关闭时间: {close_time}")
方式2:使用with语句(推荐)
with语句会自动帮你管理文件的关闭,避免手动关闭可能出现的遗漏,代码更简洁安全:
import datetime open_time = datetime.datetime.now() with open("file.txt", mode="r+") as file1: # 在这里执行你的文件操作 pass # 示例占位符,替换成实际操作 # with块结束后文件会自动关闭,此时记录关闭时间 close_time = datetime.datetime.now() print(f"文件打开时间: {open_time}") print(f"文件关闭时间: {close_time}")
补充说明
- 如果你需要精确到毫秒甚至更小的时间单位,
datetime.datetime.now()已经可以满足,它会输出包含微秒的时间戳。 - 如果文件操作耗时较长,这两个时间的差值就是文件操作的总耗时,也可以顺便计算出来:
print(f"文件操作耗时: {close_time - open_time}")
内容的提问来源于stack exchange,提问作者Bikash Behera




