读取,然后替换.txt文件中的所有文本

时间:2014-08-04 02:47:31

标签: python text twitter

我是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文档,我还没有找到更简单的东西。任何帮助都不仅仅是欢迎哈哈。 :)

2 个答案:

答案 0 :(得分:0)

我建议您使用yield逐行比较ha​​nk.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文档,就可以获得更清晰的图片。