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

时间:2016-07-20 18:12:37

标签: python file text append

我想添加到此程序以将每个crashPoint保存到文本文件中,并将新的崩溃点添加到新行。我试图从过去的工作中做到这一点,但我似乎无法让它一起工作。

#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

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

4 个答案:

答案 0 :(得分:0)

我没有使用过你正在使用的一些确切的模块,除非他们做了一些奇怪的事情,我无法从中发现。我能看到的问题是......

  1. 看起来你有一个无限循环,而pageCount> 0和pageCount + = 1所以这可能是一个问题
  2. 您正在打印到控制台而不是文本文件。代码学院有一个很好的教程,使用I / O来教你这个。
  3. 我认为如果您修复了无限循环并只使用文本文件而不是控制台,那么您将没有问题。

答案 1 :(得分:0)

如果您只是以追加模式打开输出文件,那么这样做非常简单:

#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()

答案 2 :(得分:0)

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

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

Here是使用python在文件中追加数据的不同方法。

答案 3 :(得分:-1)

打印到文本文件

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()