The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Python crontab open() путь по умолчанию, !*! Alex, 12-Сен-18, 13:16  [смотреть все]
Есть код

my_file = open("some.txt", "w")
my_file.close()

При запуске он создает файл в текущей директории.

А если запустить этот файл из под крона. Файл будет создан в директории пользователя.

А как поменять окружение, а лучше код на питоне, что бы файл создавался всегда в той директории что скрипт.

Вариант /home/vova/py/my.py не подходит, так как программа становится жестко привязанная к пути.

  • Python crontab open() путь по умолчанию, !*! ford1813, 15:29 , 12-Сен-18 (1)
    > Есть код
    > my_file = open("some.txt", "w")
    > my_file.close()
    > При запуске он создает файл в текущей директории.
    > А если запустить этот файл из под крона. Файл будет создан в
    > директории пользователя.
    > А как поменять окружение, а лучше код на питоне, что бы файл
    > создавался всегда в той директории что скрипт.
    > Вариант /home/vova/py/my.py не подходит, так как программа становится жестко привязанная
    > к пути.

    В гугле первая ссылка?
    https://www.google.ru/search?q=python+make+file+in+directory...
    + Ключевое слово при составлении поискового запроса argv[0] ?

    • Python crontab open() путь по умолчанию, !*! Alex, 16:03 , 12-Сен-18 (2)
      Нашел похожее решение:

      os.chdir(os.path.abspath(os.path.dirname(__file__)))

      Но по крону все равно скрипт отказывается работать.

      Из крона запускаю так:
      /home/user/py/test.py > /home/user/py/py.log

      В коде есть:
      ....
      ses = session.get(url)
      print("111")
      print(ses.text)
      print("2222")

      Затык на print(ses.text)

      А с консоли все работает на ура.

      • Python crontab open() путь по умолчанию, !*! ford1813, 16:29 , 12-Сен-18 (3)
        >[оверквотинг удален]
        > Из крона запускаю так:
        > /home/user/py/test.py > /home/user/py/py.log
        > В коде есть:
        > ....
        > ses = session.get(url)
        > print("111")
        > print(ses.text)
        > print("2222")
        > Затык на print(ses.text)
        > А с консоли все работает на ура.

        #!/usr/bin/python2.7
        import os
        import sys
        from sys import argv
        dn = os.path.dirname(os.path.realpath(__file__))
        fn = os.path.join(dn,"vcb.init")
        fp = open(fn,"w")
        fp.close()
        Все работает!

        • Python crontab open() путь по умолчанию, !*! Alex, 08:47 , 13-Сен-18 (4)
          С файлами все заработало ! Спасибо!

          А вот почему проблемы с print(ses.text) возникают ?

          Далее по коду у меня идет:

          handle = open("index.html", "w")
          handle.write(ses.text)
          handle.close()

          Файл создается, но он пустой.

          Похоже проблема кроется в ses.text

          Питон у меня кстати:
          #!/usr/bin/python3.5

          Библиотеки:
          import requests
          import urllib.request

          Какое еще надо прописать окружение ?




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру