Python有选择地编写特定的语句

2024-04-20 12:51:24 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的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() 

Tags: 文件代码namecmddatadefcounterror
1条回答
网友
1楼 · 发布于 2024-04-20 12:51:24
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")

这至少会告诉你错误信息是什么

相关问题 更多 >