将我的实时输出打印到txt文件不起作用python

时间:2019-10-14 13:44:26

标签: python python-3.x file printing

我的脚本每秒打印一次比特币价格,但我希望将输出打印到我的txt文件中,但它只将1个价格打印到txt文件中,但我希望每个输出都输出到我的txt文件中

我的代码

import bs4
import requests
from bs4 import BeautifulSoup
import datetime

x = datetime.datetime.now()

def parsePrice():
    r = requests.get('http://finance.yahoo.com/quote/BTC-USD?p=BTC-USD',
                     verify=False)
    soup =\
        bs4.BeautifulSoup(r.text)
    price =\
        soup.find_all('div', {'class': 'D(ib) smartphone_Mb(10px) W(70%) W(100%)--mobp smartphone_Mt(6px)'})[0].\
            find('span').text
    return price


while True:
    print('Bitcoin prijs: ' + str(parsePrice()),'  ::  ',x.strftime("%d, %B"))

     with open("koersen.txt", "w") as out_file:
       for i in range(len(parsePrice())):
          out_string = ""
            out_string += str(parsePrice())
          out_string += "," + str(a)
            out_string += "\n"
          out_file.write(out_string)

3 个答案:

答案 0 :(得分:2)

这里

with open("koersen.txt", "w") as out_file:

您正在以写模式打开文件。因此,它将覆盖所有先前的数据。以附加模式打开它:"a""w+"

更新

尝试像这样写入文件:


while True:
    print('Bitcoin prijs: ' + str(parsePrice()),'  ::  ',x.strftime("%d, %B"))

    with open("koersen.txt", "w+") as out_file:
        out_string = str(parsePrice()) + "\n"
        out_file.write(out_string)

答案 1 :(得分:0)

首先欢迎您使用Stackoverflow。您可以尝试更改以下代码,然后让我知道它是否适合您。

 with open("koersen.txt", "w") as out_file:
   for i in range(len(parsePrice())):
      out_string = ""
        out_string += str(parsePrice())
      out_string += "," + str(a)
        out_string += "\n"
      out_file.writelines(out_string)

使用写行代替写。

答案 2 :(得分:0)

代替打开文件,您也可以直接登录STDOUT控制台,然后使用tee来写入文件目录。这将使您可以直接在终端中查看行并保存归档。 为此,您只需要中的打印语句和您的文件。 您的最终命令将是 python file.py | tee output.txt