Os.path.basename () এবং os.path.dirname () এর মধ্যে পার্থক্য কী?


139

মধ্যে পার্থক্য কি os.path.basename()এবং os.path.dirname()?

আমি ইতিমধ্যে উত্তরগুলি অনুসন্ধান করেছি এবং কিছু লিঙ্কগুলি পড়েছি, তবে বুঝতে পারি নি। কেউ কি সহজ ব্যাখ্যা দিতে পারেন?

উত্তর:


273

উভয় ফাংশন os.path.split(path)পথটিকে pathএকটি জোড়ায় বিভক্ত করতে ফাংশনটি ব্যবহার করে ; (head, tail)

os.path.dirname(path)ফাংশন পথের মাথা ফেরৎ।

উদাহরণস্বরূপ: এর dirname '/foo/bar/item'হয় '/foo/bar'

os.path.basename(path)ফাংশন পথের লেজ ফেরৎ।

উদাহরণস্বরূপ: '/foo/bar/item'ফেরতের মূল নাম name'item'

থেকে: http://docs.python.org/2/library/os.path.html#os.path.basename


24
মনে রাখবেন যে আপনি যদি একটি ডিরেক্টরি যা প্রতিস্থাপন itemকরেন item/তবে তা os.path.split('foo/bar/item/')ফিরে আসে ('foo/bar/item', '')
জে কেদেব

1
পথটি যদি একটি ফাইল হয় তবে কী হবে, "foo.bar" বলুন?
ZhaoGang

4
@ জেকদেব হ্যাঁ, আপনি যদি কোনও পথে সর্বশেষ ডিরেক্টরিটির নাম পেতে চান তবে আপনার ব্যবহার করা উচিত:os.path.basename(os.path.dirname(path))
tli2020

@ZhaoGang সমগ্র পথ মাত্র একটি ফাইলের নাম হয়, তাহলে os.path.basename (FILE_NAME) ফেরৎ ফাইল নাম: এখানে 'foo.bar', এবং os.path.dirname (FILE_NAME) একটি খালি স্ট্রিং ফেরৎ: ''
jkdev

4

উপরে Breno দ্বারা উল্লিখিত যা সংক্ষেপে

বলুন আপনার কাছে কোনও ফাইলের পথের সাথে একটি চলক রয়েছে able

path = '/home/User/Desktop/myfile.py'

os.path.basename(path) স্ট্রিং প্রদান করে 'myfile.py'

এবং

os.path.dirname(path)স্ট্রিংটি '/home/User/Desktop'(কোনও পিছনে স্ল্যাশ '/' ছাড়াই) প্রদান করে

এই ফাংশনগুলি ব্যবহার করা হয় যখন আপনাকে একটি পুরো পথের নাম দেওয়া ফাইলের নাম / ডিরেক্টরি নামটি পেতে হয়।

যদি ফাইল পাথটি কেবলমাত্র ফাইলের নাম (যেমন path = '/home/User/Desktop/myfile.py'আপনার কেবলমাত্র পরিবর্তে থাকে myfile.py), os.path.dirname(path)একটি খালি স্ট্রিং দেয়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.