2017-04-12 107 views
0

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

datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H%M")
AttributeError: 'str' object has no attribute '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!" 

任何想法,我要去哪里错了吗?非常感谢。

+0

' datetime = datetime.datetime' ...你只是覆盖了导入的模块。使用不同的变量名称 –

+0

使用内建名称作为变量名称是个不错的主意,您可以使用类似'datetime_now'的东西' – Hackaholic

+0

另外,'用于计数范围(1000)'将是编写该循环的建议方式 –

回答

2

看起来你正在代码中重新使用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 

在第二次运行,现在该代码崩溃在同一行的右边,因为在字符串日期时间无属性的日期时间

固定码:

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!" 
+0

谢谢 - 那个作品。 –