posix মডিউল ইউনিক্স এনভায়রনমেন্টে কাজ করে। এটি অপারেটিং সিস্টেম ফাংশনালিটি প্রদান করে।
আমাদের এই মডিউলটি সরাসরি ইম্পোর্ট করা উচিত না। আমরা os মডিউল ব্যবহার করতে পারি। os মডিউল ইউনিক্স-এ posix মডিউলের সুপারসেট হিসেবে কাজ করে। নন-ইউনিক্স সিস্টেমে posix উপলব্ধ নয়, কিন্তু os কিছু কম ফাংশনালিটির সাথে উপলব্ধ।
posix মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে।
import posix
POSIX মডিউলে ভিন্ন মেথড এবং কনস্ট্যান্ট রয়েছে।
posix.environ কনস্ট্যান্ট
environ একটি ডিকশনারি অবজেক্ট। এটি কী এবং মান ধারণ করে। কী এবং মান ইউনিক্সের জন্য বাইট টাইপের। উদাহরণস্বরূপ, environ[b'HOME'] সিস্টেমের হোম ডিরেক্টরি দেখাবে।
যদি আমরা এই ডিকশনারিতে কিছু এন্ট্রি মডিফাই করি, তবে এটি অন্যান্য মেথডের আর্গামেন্ট যেমন execv(), popen() ইত্যাদিকে প্রভাবিত করবে না। এনভায়রনমেন্ট পরিবর্তন করতে হলে, আমাদের environ-কে execve() মেথডে পাস করতে হবে। অন্যথায় system() বা popen() মেথডের জন্য কমান্ড স্ট্রিং-এ ভেরিয়েবল অ্যাসাইনমেন্ট এবং এক্সপোর্ট স্টেটমেন্ট যোগ করতে হবে।
posix.open(file_name, mode) মেথড
POSIX open() মেথড লোকাল ডিস্ক থেকে একটি ফাইল খুলতে পারে। এটি একটি ফাইল ডেসক্রিপ্টর ফেরত দেয়। যখন একটি ফাইল ডেসক্রিপ্টার বন্ধ হয়, open() মেথড নতুন ফাইলের জন্য একই ডেসক্রিপ্টর পুনরব্যবহার করে।
posix.read(file_descriptor, size) মেথড
read() মেথড ফাইল ডেসক্রিপ্টর ব্যবহার করে ফাইল কন্টেন্ট পড়তে ব্যবহৃত হয়। এটি পড়ার সর্বোচ্চ লিমিটও নেয়। আমরা ডিরেক্টরি নির্দিষ্ট করতে পারি, কিন্তু যদি এটি none হয়, তবে মেথড কারেন্ট ডিরেক্টরি সিলেক্ট করবে।
উদাহরণ কোড
import posix
fruit_fd = posix.open("fruits", 0)
print(fruit_fd) # ফাইল ডেসক্রিপ্টর ভ্যালু
val = posix.read(fruit_fd, 512)
print(val)
print("The Home Directory: " + str(posix.environ[b'HOME']))
আউটপুট
$ python3 posix_example.py 3 b'Mango\nOrange\nBanana\nApple\nGuava\nGrape\nRaspberry\nBlueberry\nPineapple\nWatermelon\n' The Home Directory: b'/home/unix_user