Python open() 在 w+ 模式下不创建文件

我正在创建一个应用程序,该应用程序查看网站的文本,然后检查输入字符串是否位于网站 url 的 url 中。我正在做的方式是:

  1. 替换给定字符串中的空格 (' ')(因为 url 不能有空格,废话)

  2. 使用 requests 获取网站 url 的文本

  3. 创建一个新文件并将您在网站中找到的每个字符串写入该文件中。

  4. 逐行读取文件,如果其中一行包含该字符串,则在网络浏览器中打开它。

我希望我解释得很好。这是我的代码:

def getGame():

    game = gameEntry.get()

    gameClean = game.replace(' ', '_')

    print(gameClean)

    gameCheck1 = requests.get('INSERT LINK HERE')

    game2 = gameCheck1.text

    with open('Links.txt', 'w+') as f:

        f.write(game2)

        readLinks = f.readlines()

        for link in readLinks:

            if game in link:

                print(f'Found working link: {link}')

提前致谢。


GCT1015
浏览 220回答 1
1回答

慕妹3146593

当你写入文件时,文件指针会指向文件的末尾;随后的读取从文件末尾开始,但什么也没找到。要修复此问题,请f.seek(0)在调用后write调用将文件指针移回文件开头。另外,顺便说一句,没有理由打电话.readlines();只需readlines完全删除该行并将循环更改为:for link in f:并且您将按需阅读这些行(而不是list当您一次只需要一行时预先创建整个行)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python