2017-06-27 20 views
0

以下のdefはcmdで完全に動作しますが、ファイルに書き込むときには2番目のdata.write文だけが書き込まれます。最初の声明は間違いなく働いています、それはただの文章ではありません。コードが同一であるとすれば、間違っている私の人生を理解することはできません。特定の文を選択的に書き込むPython

def follower_count(list1): 
    for name in list1: 
     name = '@' + name 
     try: 
      user = api.get_user(name) 
      if user.followers_count < 5000: 
       print "" 
       print "FAILED TEST" 
       print name 
       print user.followers_count 
       data.write(name + ": " + user.followers_count + "\n") 
      else: 
       print "" 
       print name 
       print user.followers_count 
     except: 
      print "" 
      print "Error grabbing " + name 
      data.write("Error Grabbing: " + name + "\n") 
    return() 
+0

'data.write'はカスタムメソッドか組み込みですか? – Carcigenicate

+2

exceptブロックの 'data.write'が実行されている場合、エラーが発生したことを意味します。しかし、エラーをキャッチしていて、それに関する情報を表示していないため、どのような種類のエラーが発生したかはわかりません。 'try'と' except'とexceptブロックを削除すると、どのようなエラーメッセージが出ますか? – Kevin

+0

データはオープンファイルです。したがって、.writeは基本的な機能です。 data = open( 'Data.txt'、 'w +') – WolVes

答えて

2
data.write(name + ": " + user.followers_count + "\n") 

user.followers_countが整数である場合は、この行はTypeError: Can't convert 'int' object to str implicitlyでクラッシュします。

str.formatを使用して文字列を補間してみてください。

data.write("{}: {}\n".format(name, user.followers_count)) 

はさらに、あなたの except内の任意の診断情報を表示しないことによって自分自身のためにはるかに困難なデバッグを作っています。エラーが発生したことを知っていますが、そのエラーについては特に分かりません。少なくとも、次のようにすることができます。

except Exception as e: 
     print "" 
     print "Error grabbing " + name 
     data.write("Error Grabbing: " + name + "\n") 
     data.write(e.message + "\n") 

少なくとも、エラーメッセージの内容を教えてくれるでしょう。

関連する問題