2017-04-12 11 views
0

私の目的は、10秒ごとに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

また、このループを書くには' for count in range(1000) 'が推奨されます。 –

答えて

2

コードでdatetime変数を再利用しているようです。最初の実行では、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

ありがとうございます - それは動作します。 –

関連する問題