2017-04-12 104 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

謝謝 - 那個作品。 –