При воспроизведения скрипта с помощью 'Crontab' путь не тот который нужен
Есть простой скрипт который записывает данные:
with open('http.txt', 'w') as f:
f.truncate(0)
f.write(px)
Сам путь до скрипта:
/home/bot/proxy/proxy_update.py
Если выполнять скрипт с помощью обычной bash команды:
python3.6 /home/bot/proxy/proxy_updater.py
То всё отлично срабатывает, и файл http.txt создаётся именно в корневой папке выполняемого скрипта /home/bot/proxy_update/http.txt
Но когда скрипт пытается выполнить планировщик задач Crontab то файл http.txt создаётся в корневой папке /root
Как можно это исправить что бы файл создавался в той же директории где и находится сам скрипт?
Сама задача в Crontab:
0 0 * * * python3.6 /home/bot/proxy/proxy_update.py
Ответы (2 шт):
Надо указать абсолютный путь до файла. Что бы скрипт обращался к файлу из нужной папки.
os.getcwd() - получить путь к той папке, где лежит скрипт.
os.path.join(path, name) - создать полный путь до файла.
В целом примерно так:
import os
cwd = os.getcwd() # Current Working Directory
name = "text.txt"
fullname = os.path.join(cwd, name)
with open(fullname, 'w') as f:
# do your stuff