我正在编写一个小程序,从零开始发布数字,然后加1,将其写入文本文档,然后使用新的写入值再次发送。这是我目前的代码:
def tweet(number, open_number):
print(number)
threading.Timer(20.0, tweet).start()
while int(number) >= 0:
api.update_status(number)
number = number + 1
number_str = str(number)
open_number.truncate()
open_number.write(number_str)
break
print(number)
def main():
open_number = open("number.txt", "r+")
print(open_number)
number = int(open_number.read())
tweet(number, open_number)
main()
我接受了带有我的起始编号的number.txt文件,在我的例子中它是0.然后我创建一个数字变量来读取文本文档并将其变成一个整数,如我的main函数所示:
def main():
open_number = open("number.txt", "r+")
print(open_number)
number = int(open_number.read())
tweet(number, open_number)
main()
从那里我调用我的推文功能,每次面包时都会有一个计时器,并在20秒后重新启动。在它发出" 0"的第一条推文之后它然后等待20秒,当它试图发出第二条推文时,我得到以下错误:
TypeError: tweet() missing 2 required positional arguments: 'number' and 'open_number'
我遇到的另一个问题是它写入新号码时它最终只是在零之后附加它。例如
首先运行:
0
第二次运行:
01
而不是仅覆盖整个.txt文件。
不确定如何解决这两个问题,任何帮助表示赞赏! :)
答案 0 :(得分:0)
您没有将所需参数传递给所需的推文功能。您需要使用以下代码行启动线程。此外,您应该在执行while循环后启动线程,否则while循环中的代码将不会被执行。
threading.Timer(2, hello, (number,open_number)).start()