我是Python的新手(一般编码,如果我是诚实的)并且决定通过浸入Twitter API来学习制作一个奇怪的Twitterbot,它会在推文和reposts中拼写单词他们,_ebooks风格。
无论如何,我现在设置它的方式,它会提取最新的推文,然后将它与前一条推文的.txt文件进行比较。如果推文和.txt文件匹配(即不是新的推文),它什么都不做。如果他们没有,它会用当前的推文替换.txt文件,然后加扰并发布。我觉得这样做比我做的更好。这是相关代码:
words = hank[0]['text']
target = open("hank.txt", "r")
if words == "STOP":
print "Sam says stop :'("
return
else:
if words == target.read():
print "Nothing New."
else:
target.close()
target = open("hank.txt", "w")
target.write(words)
target.close()
显然,打开' r'只是为了查看推文,关闭和重新打开,因为' w'不是很有效率。但是,如果我打开作为' w +'它在我阅读时会删除文件的所有内容,如果我将其打开为' r +',它会将新的推文添加到文件的开头或结尾(取决于我在哪里)显然设置指针)。我100%肯定我错过了一些显而易见的东西,但经过几个小时的谷歌搜索和疏浚Python文档,我还没有找到更简单的东西。任何帮助都不仅仅是欢迎哈哈。 :)
答案 0 :(得分:0)
我建议您使用yield
逐行比较hank.txt和单词,这样可以节省更多的内存空间,如果您专注于效率的话。
至于文件操作,我认为没有更好的方法来覆盖文件。如果你使用Linux,也许'cat> hank.txt'可能会更快。只是一个猜测。
答案 1 :(得分:0)
with open(filename, "r+") as f:
data = f.read()// Redaing the data
//any comparison of tweets etc..
f.truncate()//here basically it clears the file.
f.seek(0)// setting the pointer
f.write("most recent tweet")// writing to the file
无需关闭文件实例,它会自动关闭。 只需阅读这些方法的python文档,就可以获得更清晰的图片。