Печать моего вывода в реальном времени в текстовый файл не работает Python - PullRequest
1 голос
/ 14 октября 2019

Мой скрипт печатает каждую секунду цену биткойна, но я хочу, чтобы вывод выводился в мой текстовый файл, но он печатает только 1 цену в текстовый файл, но я хочу, чтобы каждый вывод выводился в мой текстовый файл

Мойкод

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 ]

2 голосов
/ 14 октября 2019

Здесь

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)
0 голосов
/ 14 октября 2019

Вместо открытия файла вы также можете напрямую войти в консоль STDOUT и затем использовать tee для записи в файл direclty. Это позволит вам просматривать строки в терминале напрямую, а также сохранять в файл. Для этого вам просто нужно распечатать заявления в и ваш файл. и ваша последняя команда будет python file.py | tee output.txt

0 голосов
/ 14 октября 2019

Прежде всего, добро пожаловать в 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)

вместо записи, используйте writelines.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...