【问题标题】:Outputting datetime in a loop is failing在循环中输出日期时间失败
【发布时间】:2017-04-12 18:58:07
【问题描述】:

我的目标是每 10 秒运行 ipconfig 1000 次,将命令的输出写入包含日期的文本文件。下面我的代码的问题是,一旦它开始循环的第二次运行,它就会咳嗽:

datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H%M")
AttributeError: 'str' 对象没有属性 'datetime'

import datetime
import os
import time

count=0
while (count < 1000):
    print '--------------------------------------------------------'
    print count
    datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H%M")
    print datetime
    os.system("ipconfig > ipconfig_" + datetime)
    print '--------------------------------------------------------'
    time.sleep(10)
    count = count + 1
print "Good bye!"

任何想法我哪里出错了?非常感谢。

【问题讨论】:

  • datetime = datetime.datetime... 您刚刚覆盖了导入的模块。使用不同的变量名
  • 使用内置名称作为变量名是个坏主意,您可以使用类似datetime_now
  • 另外,for count in range(1000) 将是编写该循环的建议方式
  • 谢谢 - 这解决了我的问题。

标签: python datetime


【解决方案1】:

看起来您正在代码中重新使用 datetime 变量。在第一次运行时,它工作正常,因为 datetime 是导入的模块。然后,在

datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H%M")
# datetime is now a string storing the date time in the format specified

在第二次运行中,由于字符串 datetime 中没有属性 datetime,代码现在在同一行的 rhs 中崩溃

固定代码:

import datetime
import os
import time

count=0
while (count < 1000):
    print '--------------------------------------------------------'
    print count
    date_time = datetime.datetime.now().strftime("%Y-%m-%d_%H%M")
    print date_time
    os.system("ifconfig > ifconfig_" + date_time)
    print '--------------------------------------------------------'
    time.sleep(10)
    count = count + 1
print "Good bye!"

【讨论】:

    猜你喜欢
    • 2023-03-22
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多