Python операция записи выполняется недостаточно быстро - PullRequest
0 голосов
/ 19 апреля 2020

Я не знаю, почему это начало происходить недавно. У меня есть функция, которая открывает новый текстовый файл, записывает в него URL-адрес, затем закрывает его, но это не делается сразу после выполнения f.close(). Проблема в том, что функция после open_url() должна прочитать из этого текстового файла URL-адрес, но, поскольку ничего нет, моя программа выдает ошибку.

По иронии судьбы, после того, как моя программа вышла из строя и я остановил ее, файл url.txt сделан хаха. Кто-нибудь знает, почему это происходит с действием python .write()? Есть ли другой способ создать текстовый файл и написать строку текста в этот текстовый файл быстрее?

    @staticmethod
    def write_url():
        if not path.exists('url.txt'):
            url = UrlObj().url
            print(url)
            with open('url.txt', 'w') as f:
                f.write(url)
                f.close
        else:
            pass



    @staticmethod
    def open_url():
        x = open('url.txt', 'r')
        y = x.read()
        return y



def main():

    scraper = Job()
    scraper.write_url()
    url = scraper.open_url()
    results = scraper.load_craigslist_url(url)
    scraper.kill()
    dictionary_of_listings = scraper.organizeResults(results)
    scraper.to_csv(dictionary_of_listings)


if __name__ == '__main__':

    main()

    scheduler = BlockingScheduler()
    scheduler.add_job(main, 'interval', hours=1)
    scheduler.start()

Существует еще один класс, называемый url, который предлагает пользователю добавить атрибуты к пустому url для использования seleenium. UrlObj().url дает вам URL для записи, который используется для записи в новый текстовый файл. Если файл url.txt уже существует, тогда передайте и go в open_url () и получите URL-адрес из файла url.txt для передачи в переменную url, которая используется для запуска очистки.

1 Ответ

0 голосов
/ 19 апреля 2020

Только что нашел работу. Если файл не существует, верните URL, который будет передан непосредственно в load_craigslist_url. Если текстовый файл существует, просто прочитайте его.

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