কম্পিউটার টিউটোরিয়াল

পাইথন os.path.join: শুরুকারীদের জন্য গাইড

পাইথন os.path.join মেথড এক বা একাধিক পাথ নামকে একটি পাথে জোড়া দেয়। এই মেথডটি প্রায়শই os.walk() মেথডের সাথে ব্যবহার করা হয় একটি ফাইল বা ফোল্ডারের চূড়ান্ত পাথ তৈরি করতে। os.path.join() স্বয়ংক্রিয়ভাবে ফাইল পাথ নামে প্রয়োজনীয় ফরওয়ার্ড স্ল্যাশ যোগ করে।

পাইথন os.path.join কীভাবে ব্যবহার করবেন

পাইথনে ফাইল নিয়ে কাজ করার সময় আপনি পাথ ল্যাবেরিন্থে আটকে যেতে পারেন।

ফাইল নিয়ে কাজ করতে, আপনাকে নির্দিষ্ট করতে হবে যে ডিরেক্টরি কোন ফাইলে রয়েছে। এটা শুনতে সহজ কিন্তু বাস্তবে তেমন নয়। আপনি যদি সঠিক পাথ নির্দিষ্ট না করেন, তবে আপনার প্রোগ্রাম কাজ করবে না।

এই গাইডে, আমরা os.path.join নিয়ে কথা বলব। এটি একটি মেথড যা ফাইল পাথের উপাদানগুলোক একত্রিত করে একটি পূর্ণ পাথ তৈরি করে। আমরা দুটি উদাহরণের মাধ্যমে এই মেথডের সাথে শুরু করতে সাহায্য করব।

ফাইল পাথে কী থাকে?

একটি ফাইল পাথ হলো ফাইল এবং ফোল্ডার নামের একটি সিকোয়েন্স। এই নামের সিকোয়েন্স আপনাকে আপনার কম্পিউটারের অপারেটিং সিস্টেম (OS)-এ একটি নির্দিষ্ট জায়গায় নিয়ে যায়।

নিচের পাথটি উদাহরণ হিসেবে নিই:

/Users/James/tutorials

এই পাথ আমাদের "tutorials" নামে একটি ফোল্ডারে নিয়ে যায়। যদি আমরা এই ফোল্ডারের ভিতরে কোন নির্দিষ্ট ফাইল বা ডিরেক্টরি এক্সেস করতে চাই, তবে আমরা তার ফাইল নাম ব্যবহার করে পয়েন্ট করতে পারি:

/Users/James/tutorials/README.md

আপনি এই ফাইল পাথগুলো পাইথনে ম্যানুয়ালি লিখতে পারেন। কিন্তু এটি অদক্ষ হতে পারে। সেটাই কারণ os.path.join এসে পড়ে।

পাইথন os.path.join কী?

os.path.join পাথ নামগুলোকে একত্রিত করে একটি পূর্ণ পাথ তৈরি করে। এর মানে আপনি পাথের একাধিক অংশকে একে মাত্রা পাথে 머র্জ করতে পারেন, প্রতিটি পাথ নাম ম্যানুয়ালি হার্ড-কোডিং করার বদলে।

এই ফাংশনটি ব্যবহার করতে, আপনাকে os লাইব্রেরি আপনার কোডে ইম্পোর্ট করতে হবে:

import os

os.path.join() মেথডের সিনট্যাক্স দেখি। os.path.join ফাংশন পাথের একটি তালিকা গ্রহণ করে যা আপনি একে মাত্রা পাথে 머র্জ করতে চান:

os.path.join(path1, path2...)

path1, path2, এবং পরবর্তী সব মানগুলো সেই পাথগুলোকে রিপ্রেজেন্ট করে যেগুলো আপনি একটি একক নামে কম্বাইন করতে চান।

path = os.path.join("/Users/James/tutorials", "index.html")
print(path)

এই কোড ফেরত দেয়: /Users/James/tutorials/index.html। os.path.join মেথডটি আমাদের নির্দিষ্ট করা অ্যাবসোলিউট পাথ কম্পোনেন্ট থেকে চালু থাকে ("/Users/James/tutorials")। আমরা index.html কে পাথের শেষে যোগ করি।

সুবিধাজনকভাবে, os.path.join মেথডটি ডিরেক্টরি সেপারেটর বলা ফরওয়ার্ড স্ল্যাশ ("/") প্রয়োজন হলে স্বয়ংক্রিয়ভাবে যোগ করে দেয়। এটা ম্যানুয়ালি ক্যাটেনেট করার চেয়ে ফাইল পাথ নাম কম্বাইন করার জন্য আরও সুবিধাজনক করে।

os.path.join পাইথন উদাহরণ

চলুন ফাইল নাম "index.html" কে "tutorials/web/" ফোল্ডারের সাথে কম্বাইন করি। এই ফাইল আমাদের কারেন্ট ওয়ার্কিং ডিরেক্টরির ভিতরে রয়েছে।

আমরা os লাইব্রেরি ইম্পোর্ট করে শুরু করব:

import os

পরবর্তীতে, আমরা আমাদের কারেন্ট ওয়ার্কিং ডিরেক্টরি পাবো যাতে আমরা আমাদের ফাইল পাথ নাম সেটির সাথে যোগ করতে পারি:

cwd = os.getcwd()

এটি আমাদের কারেন্ট ওয়ার্কিং ডিরেক্টরি ফেরত দেয়, যা /Users/James/tutorials। "tutorials" ফোল্ডারটি আমাদের ইউজারের হোম ডিরেক্টরির ভিতরে রয়েছে। আমরা এই তথ্যটি ব্যবহার করে আমাদের ওয়ার্কিং ডিরেক্টরির শেষে "tutorials/web" যোগ করতে পারি:

web_tutorials = os.path.join(cwd, "tutorials/web")
print(web_tutorials)

এই কোড ফেরত দেয়: /Users/James/tutorials/web। আমাদের কোড আমাদের পাথ নাম কম্পোনেন্টগুলোক একে মাত্রা পাথে কম্বাইন করেছে। আমাদের পাথ নামের মধ্যে একটি ফরওয়ার্ড স্ল্যাশ ("/") যোগ করা হয়েছে। এই পাথ আমাদের এক্সিস্টিং পাথের "web" ফোল্ডারকে রেফার করে।

পাইথন os.path.join: ফাইল লিস্ট করা

চলুন os.path.join মেথড ব্যবহার করে একটি ফোল্ডারের সব ফাইলের পূর্ণ ফাইল পাথ ফেরত দেই। আমরা আমাদের ফাইল সিস্টেমের "Desktop" ফোল্ডারের সব ফাইল লিস্ট করব। এই ফোল্ডারটি ড্রাইভে "/Users/James/" ডিরেক্টরিতে অবস্থিত।

আমরা os লাইব্রেরি ইম্পোর্ট করে এবং যে ডিরেক্টরি সার্চ করতে চাই সেটি ডিফাইন করে শুরু করব:

import os
cwd = os.getcwd()
desktop = os.path.join(cwd, "Desktop")

এই কোড আমাদের কারেন্ট ওয়ার্কিং ডিরেক্টরির সাপেক্ষে Desktop ফোল্ডারের ফাইল পাথ জেনারেট করে। পরবর্তীতে, আমরা পাইথন os.listdir() মেথড ব্যবহার করে এই ফোল্ডারের সব ফাইলের তালিকা বের করব:

files = os.listdir(desktop)

এই মেথড Desktop ফোল্ডারে থাকা সব ফাইলের নামের একটি তালিকা ফেরত দেয়। এতে ফাইলগুলোর পাথ থাকে না। এখন যেহেতু এই ফাইল তালিকা আছে, আমরা সেগুলো কনসোলে প্রিন্ট করতে পারি। আমরা os.path.join এবং একটি পাইথন for লুপ ব্যবহার করে প্রতিটি ফাইলের পূর্ণ ফাইল পাথ প্রিন্ট করব:

for f in files:
    print(os.path.join(desktop, f))

এই কোড Desktop ফোল্ডারের সব ফাইল থেকেই লুপ চলে। প্রতিটি ফাইলের নামকে Desktop ফোল্ডারের পাথ নামের সাথে 머র্জ করে। আমাদের কোড ফেরত দেয়:

/Users/James/Desktop/.DS_Store
/Users/James/Desktop/Notes.md
/Users/James/Desktop/To-dos.md

আমার ডেস্কটপে তিনটি ফাইল রয়েছে: .DS_Store, Notes.md, এবং To-dos.md। আমরা os.path.join() ব্যবহার করে প্রতিটি ফাইলের পূর্ণ পাথ জেনারেট করেছি।

উপসংহার

os.path.join মেথড পাথ নামের কম্পোনেন্টগুলোক কম্বাইন করে একটি পূর্ণ পাথ নাম তৈরি করে।

এই মেথড পাথ নামের দুটি বা অধিক কম্পোনেন্ট কম্বাইন করা সহজ করে দেয়। Os.path.join প্রয়োজন হলে ফরওয়ার্ড স্ল্যাশ ("/") পাথ নামে স্বয়ংক্রিয়ভাবে ইনসার্ট করে।

আপনি যদি পাইথন প্রোগ্রামিং ভাষা সম্পর্কে আরও জানতে চান, তবে আমাদের How to Learn Python গাইড দেখুন।

  1. পাইথনে মিনিমাম পাথ সম বের করুন

  2. পাইথনে পাথ সরলীকরণ

  3. পাইথনে বাইনারি ট্রিতে পাথ সাম (Path Sum)

  4. পাইথনে join() ফাংশন