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

2024-09-29 17:18:40 发布

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

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

  1. 替换给定字符串中的空格(“”)(因为url不能有空格,duh)
  2. 使用请求获取网站url的文本
  3. 创建一个新文件,并将网站中找到的每个字符串写入该文件
  4. 逐行读取文件,如果其中一行包含字符串,请在webbrowser中打开它

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

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}')

提前谢谢


Tags: 文件字符串in文本gameurlget网站
1条回答
网友
1楼 · 发布于 2024-09-29 17:18:40

当您写入文件时,文件指针结束于文件的末尾;后续读取从文件末尾开始,但未找到任何内容。要修复此问题,请在write调用之后调用f.seek(0),将文件指针移回文件的开头

另外,作为旁注,没有理由调用.readlines();只需完全删除readlines行并将循环更改为:

for link in f:

您将根据需要阅读这些行(而不是在一次只需要一行的情况下预先创建一整行)

相关问题 更多 >

    热门问题