The OpenNET Project / Index page

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



"Python crontab open() путь по умолчанию"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Python)
Изначальное сообщение [ Отслеживать ]

"Python crontab open() путь по умолчанию"  +/
Сообщение от Alex (??), 12-Сен-18, 13:16 
Есть код

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

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

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

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

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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Python crontab open() путь по умолчанию"  +/
Сообщение от ford1813 (ok), 12-Сен-18, 15:29 
> Есть код
> 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] ?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Python crontab open() путь по умолчанию"  +/
Сообщение от Alex (??), 12-Сен-18, 16:03 
Нашел похожее решение:

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)

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

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Python crontab open() путь по умолчанию"  +/
Сообщение от ford1813 (ok), 12-Сен-18, 16:29 
>[оверквотинг удален]
> Из крона запускаю так:
> /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()
Все работает!

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

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

А вот почему проблемы с 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

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

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


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