আমি প্রতি মিনিটে ক্রন্টব থেকে পাইথন শেলটি চালাই:
* * * * * /home/udi/foo/bar.py
/home/udi/fooকিছু প্রয়োজনীয় উপ-ডিরেক্টরি আছে, যেমন /home/udi/foo/logএবং /home/udi/foo/config, যা /home/udi/foo/bar.pyবোঝায়।
সমস্যাটি হ'ল crontabস্ক্রিপ্টটি একটি ভিন্ন ওয়ার্কিং ডিরেক্টরি থেকে চালিত হয়, তাই খোলার চেষ্টা ./log/bar.logব্যর্থ হয়।
স্ক্রিপ্টকে স্ক্রিপ্টটির নিজস্ব ডিরেক্টরিতে ওয়ার্কিং ডিরেক্টরিটি পরিবর্তন করতে বলার কোনও দুর্দান্ত উপায় আছে? আমি কোনও সমাধান কল্পনা করবো যা কোনও স্ক্রিপ্টের অবস্থানের জন্য কাজ করবে, স্ক্রিপ্টটি যেখানে রয়েছে তা স্পষ্ট করে বলার অপেক্ষা রাখে না।
সম্পাদনা করুন:
os.chdir(os.path.dirname(sys.argv[0]))
সবচেয়ে কমপ্যাক্ট মার্জিত সমাধান ছিল। আপনার উত্তর এবং ব্যাখ্যা জন্য ধন্যবাদ!
crontabব্যবহারের ক্ষেত্রে সম্পর্কিত নয় : উভয়ইsys.argv[0]এবং__file__যদি স্ক্রিপ্ট ব্যবহার করে চালানো হয় তবে ব্যর্থ হয়execfile();inspectএর ভিত্তিতে সমাধানটি ব্যবহার করা যেতে পারে।