Python-使用循环将新行写入文本文件



我想添加到这个程序中,将每个崩溃点保存到一个文本文件中,并在新行中添加一个新的崩溃点。我曾试图从过去的工作中做到这一点,但我似乎无法将其结合起来。

#Imports
from bs4 import BeautifulSoup
from urllib import urlopen
import time
#Required Fields
pageCount = 1287528

#Loop
while(pageCount>0):
    time.sleep(1)
    html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
    soup = BeautifulSoup(html, "html.parser")
    try:
        section = soup.find('div', {"class":"row panel radius"})
        crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
    except:
        continue
    print(crashPoint[0:-1])
    pageCount+=1

有人能指出我做错了什么以及如何解决吗?

我还没有使用过你正在使用的一些确切的模块,所以除非它们做了一些奇怪的事情,否则我无法从中闪光。我能看到的问题是。。。

  1. 看起来你有一个无限循环,而pageCount>0和pageCount+=1,所以这可能是一个问题
  2. 您要打印到控制台而不是文本文件外观。Code Academy有一个关于使用I/O的很棒的教程来教您这一点

我认为,如果你修复了无限循环,只使用文本文件而不是控制台,你就没有问题了。

如果您只是以附加模式打开输出文件,那么执行此操作非常简单:

#Loop
logFile = open("logFile.txt", "a")
while(pageCount>0):
    time.sleep(1)
    html = urlopen('https://www.csgocrash.com/game/1/%s' % (pageCount)).read()
    soup = BeautifulSoup(html, "html.parser")
    try:
        section = soup.find('div', {"class":"row panel radius"})
        crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
        logFile.write(crashPoint+"n")
    except:
        continue
    print(crashPoint[0:-1])
    pageCount+=1
logFile.close()

以追加模式打开文件,将数据写入文件。如果您正在遍历文件循环,只需打开一次文件并继续写入新数据。

with open("test.txt", "a") as myfile:
    myfile.write(crashPoint[0:-1])

以下是使用python在文件中附加数据的不同方法。

打印到文本文件

from bs4 import BeautifulSoup
from urllib import urlopen
import time
#Required Fields
pageCount = 1287528
fp = open ("logs.txt","w")
#Loop
while(pageCount>0):
    time.sleep(1)
    html = urlopen('https://www.csgocrash.com/game/1/%s' %(pageCount)).read()
   soup = BeautifulSoup(html, "html.parser")
   try:
       section = soup.find('div', {"class":"row panel radius"})
       crashPoint = section.find("b", text="Crashed At: ").next_sibling.strip()
   except:
       continue
   print(crashPoint[0:-1])
   #write to file here
   fp.write(crashPoint[0:-1]+'n')
   #i think its minus
   pageCount-=1
fp.close()

相关内容

  • 没有找到相关文章

最新更新