You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python端口扫描程序时间格式化求助:去除毫秒并按指定格式显示

解决端口扫描的时间格式与耗时取整问题

嘿,作为Python新手能自己实现端口扫描的时间记录功能已经很棒啦!我来帮你调整成你想要的格式和耗时取整方式~

1. 格式化扫描开始时间(去掉毫秒,改为12.58.32格式)

你之前用datetime.datetime.now()会显示毫秒,其实只需要借助strftime()方法自定义时间格式即可。这个方法可以让你按照任意想要的格式输出时间:

import datetime

# 记录原始开始时间(用于后续计算耗时)
start_time = datetime.datetime.now()
# 格式化为「时.分.秒」的形式,无毫秒
formatted_start_time = start_time.strftime("%H.%M.%S")
print(f"扫描开始时间:{formatted_start_time}")

这里的格式符说明:

  • %H:24小时制的小时(00-23)
  • %M:分钟(00-59)
  • %S:秒(00-59)
    用点.分隔这三个部分,就得到了你要的12.58.32样式。

2. 计算取整到秒的扫描耗时

当扫描结束后,用结束时间减去开始时间会得到一个timedelta对象,它包含了时间差的详细信息。我们可以用total_seconds()方法获取总耗时的浮点数,再通过以下两种方式取整:

方式一:截断小数部分(直接取整数位)

适合不需要四舍五入,只保留已完成秒数的场景(比如3.9秒算3秒):

end_time = datetime.datetime.now()
# 计算总耗时并截断取整
scan_time = int((end_time - start_time).total_seconds())
print(f"扫描耗时:{scan_time} 秒")

方式二:四舍五入取整

适合需要按常规四舍五入规则统计的场景(比如3.5秒算4秒):

end_time = datetime.datetime.now()
# 计算总耗时并四舍五入取整
scan_time = round((end_time - start_time).total_seconds())
print(f"扫描耗时:{scan_time} 秒")

完整示例代码

把以上逻辑整合到你的端口扫描程序里,完整代码如下:

import datetime
import time  # 仅用于模拟扫描耗时,实际替换成你的端口扫描代码

# 记录并格式化开始时间
start_time = datetime.datetime.now()
formatted_start = start_time.strftime("%H.%M.%S")
print(f"扫描开始时间:{formatted_start}")

# 模拟端口扫描过程(替换成你的真实扫描代码)
print("正在扫描端口...")
time.sleep(4.3)  # 模拟耗时4.3秒

# 计算并输出耗时
end_time = datetime.datetime.now()
scan_time = int((end_time - start_time).total_seconds())
print(f"扫描结束,耗时:{scan_time} 秒")

内容的提问来源于stack exchange,提问作者BchainBrother

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:22:59