You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python中获取文件打开与关闭时的实时时间?

解决文件打开/关闭时间记录的问题

我来帮你分析下代码的问题,以及如何正确获取文件打开和关闭的实时时间:

你的代码存在的问题

  1. close()方法的返回值误区file.close()方法执行后返回的是None,不是True。你调用了两次file1.close(),第一次已经关闭了文件,第二次调用依然返回None,所以if (file1.close()==True)这个条件永远不会成立,自然没有输出。
  2. 时机错误:你想记录打开和关闭的时间,但代码里只在错误的条件下尝试打印关闭时间,完全没有记录打开时间的逻辑。
  3. 缺少模块导入:使用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

火山引擎 最新活动