下面的def在cmd中完美地工作,但是当写入文件时,它只写入第二个data.write语句。第一个声明肯定是有效的,它只是不写作。鉴于代码是相同的,我无法弄清楚我的生活有什么不对。
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 :(得分:2)
data.write(name + ": " + user.followers_count + "\n")
如果TypeError: Can't convert 'int' object to str implicitly
是整数,此行将与user.followers_count
一起崩溃。
尝试使用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")
至少会告诉你错误信息是什么。