python - bangla - সহজ ভাষায় পাইথন ৩ pdf download




পাইথন দিয়ে স্ক্রিপ্টের ডিরেক্টরিটি কিভাবে পাব? (8)

আপনাকে os.path.realpath তে __file__ কল করতে হবে, যাতে যখন __file__ কোন পথ ছাড়াই একটি ফাইল নাম থাকে তখনও আপনি এখনও পথটি পাবেন:

import os
print(os.path.dirname(os.path.realpath(__file__)))

এই প্রশ্নটি ইতিমধ্যে একটি উত্তর আছে:

নিম্নলিখিত পাইথন কোড বিবেচনা করুন:

import os
print os.getcwd()

আমি স্ক্রিপ্ট ফাইলের ডিরেক্টরি অবস্থান পেতে os.getcwd() ব্যবহার করি। যখন আমি কমান্ড লাইন থেকে স্ক্রিপ্টটি চালাও তখন এটি আমাকে সঠিক পথ দেয়, যখন আমি একটি Django ভিউতে কোড দ্বারা চালিত একটি স্ক্রিপ্ট থেকে এটি চালায় তখন এটি মুদ্রণ করে।

একটি Django দৃশ্য দ্বারা চালিত একটি স্ক্রিপ্ট মধ্যে থেকে আমি কিভাবে স্ক্রিপ্ট পথ পেতে পারি?

হালনাগাদ:
এতদূর উত্তরগুলি os.getcwd() - os.getcwd() এবং os.path.abspath() উভয় বর্তমান কার্যকারী ডিরেক্টরি দেয় যা স্ক্রিপ্টটি থাকে এমন ডিরেক্টরি হতে পারে বা হতে পারে না। আমার ওয়েব হোস্ট সেটআপ __file__ পাথ ছাড়া শুধুমাত্র ফাইল নাম দেয়।

পাইথনটিতে কোন উপায় নেই (সর্বদা) স্ক্রিপ্টটি যে পথে থাকে সেটি পাওয়ার যোগ্য হতে পারে?


আমি ব্যবহার করি:

import os
import sys

def get_script_path():
    return os.path.dirname(os.path.realpath(sys.argv[0]))

আইহাম একটি মন্তব্যে উল্লেখ করে, আপনি এই ফাংশনটি একটি মডিউলে সংজ্ঞায়িত করতে এবং বিভিন্ন স্ক্রিপ্টগুলিতে এটি ব্যবহার করতে পারেন।


এখানে আমি শেষ পর্যন্ত কি। আমি যদি আমার স্ক্রিপ্টটি ইন্টারপ্রেটারে আমদানি করি তবে এটি আমার জন্য কাজ করে, এবং যদি আমি স্ক্রিপ্ট হিসাবে এটি কার্যকর করি:

import os
import sys

# Returns the directory the current script (or interpreter) is running in
def get_script_directory():
    path = os.path.realpath(sys.argv[0])
    if os.path.isdir(path):
        return path
    else:
        return os.path.dirname(path)

এটা চেষ্টা কর:

def get_script_path(for_file = None):
    path = os.path.dirname(os.path.realpath(sys.argv[0] or 'something'))
    return path if not for_file else os.path.join(path, for_file)

এটি একটি পুরানো পুরানো থ্রেড কিন্তু আমি বর্তমান সমস্যাতে ফাইলগুলি সংরক্ষণ করার চেষ্টা করার সময় এই সমস্যাটি পেয়েছি যখন স্ক্রিন একটি ক্রন কাজ থেকে একটি পাইথন স্ক্রিপ্ট চালানোর সময় হয়। getcwd () এবং অন্য অনেক পথ আপনার হোম ডিরেক্টরি দিয়ে আসে।

আমি ব্যবহৃত স্ক্রিপ্ট একটি পরম পথ পেতে

directory = os.path.abspath(os.path.dirname(__file__))


os.path.abspath('') ব্যবহার করুন


import os
exec_filepath = os.path.realpath(__file__)
exec_dirpath = exec_filepath[0:len(exec_filepath)-len(os.path.basename(__file__))]

import os
script_dir = os.path.dirname(os.path.realpath(__file__)) + os.sep




getcwd