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

পাইথনে অস্থায়ী ফাইল ও ডিরেক্টরি তৈরি করা (tempfile মডিউল)

স্ট্যান্ডার্ড লাইব্রেরির tempfile মডিউল অস্থায়ী ফাইল ও ডিরেক্টরি তৈরির জন্য ফাংশন সংজ্ঞায়িত করে। এগুলো অপারেটিং সিস্টেমের ফাইল সিস্টেম দ্বারা সংজ্ঞায়িত বিশেষ টেম্প ডিরেক্টরিতে তৈরি হয়। উদাহরণস্বরূপ, উইন্ডোজে টেম্প ফোল্ডার profile/AppData/Local/Temp-এ থাকে, লিনাক্সে অস্থায়ী ফাইলগুলো /tmp ডিরেক্টরিতে থাকে।

tempfile মডিউলে নিচের ফাংশনগুলো সংজ্ঞায়িত:

TemporaryFile()

এই ফাংশনটি টেম্প ডিরেক্টরিতে একটি অস্থায়ী ফাইল তৈরি করে এবং একটি ফাইল অবজেক্ট ফেরত দেয়, বিল্ট-ইন open() ফাংশনের মতো। ফাইলটি ডিফল্টভাবে wb+ মোডে খুলে, অর্থাৎ এটি একই সাথে বাইনারি ডেটা পড়তে/লিখতে ব্যবহার করা যায়। গুরুত্বপূর্ণ বিষয় হলো, ফাইল অবজেক্ট বন্ধ হয়ে গেলে টেম্প ফোল্ডার থেকে ফাইলটির এন্ট্রি মুছে যাওয়া। TemporaryFile() ফাংশন ব্যবহারের উদাহরণ:

>>> import tempfile
>>> f = tempfile.TemporaryFile()
>>> f.write(b'Welcome to TutorialsPoint')
>>> import os
>>> f.seek(os.SEEK_SET)
>>> f.read()
b'Welcome to TutorialsPoint'
>>> f.close()

নিচের উদাহরণটি TemporaryFile অবজেক্টকে w+ মোডে খোলা টেক্সট ডেটা লিখে এবং পড়ে (বাইনারি ডেটা নয়)।

>>> ff = tempfile.TemporaryFile(mode='w+')
>>> ff.write('hello world')
>>> ff.seek(0)
>>> ff.read()
'hello world'
>>> ff.close()

NamedTemporaryFile()

এই ফাংশনটি TemporaryFile() ফাংশনের মতোই। একমাত্র পার্থক্য হলো, অপারেটিং সিস্টেমের নির্দিষ্ট টেম্প ফোল্ডারে একটি র‍্যান্ডম ফাইলনেম দিয়ে ফাইলটি দৃশ্যমান থাকে। ফাইল অবজেক্টের name এট্রিবিউট দিয়ে নামটি পাওয়া যায়। এই ফাইলটিও বন্ধ হয়ে গেলে সাথে সাথে মুছে যাওয়া।

>>> fo = tempfile.NamedTemporaryFile()
>>> fo.name
'C:\\Users\\acer\\AppData\\Local\\Temp\\tmpipreok8q'
>>> fo.close()

TemporaryDirectory()

এই ফাংশনটি একটি অস্থায়ী ডিরেক্টরি তৈরি করে। dir প্যারামিটার দিয়ে এই টেম্পরারি ডিরেক্টরির লোকেশন বেছে নেওয়া যায়। নিচের স্টেটমেন্ট C:\python36 ফোল্ডারে একটি অস্থায়ী ডিরেক্টরি তৈরি করবে।

>>> f = tempfile.TemporaryDirectory(dir="C:/python36")
<TemporaryDirectory 'C:/python36\\ tmp9wrjtxc_'>

তैयার ডিরেক্টরি dir1 ফোল্ডারে দৃশ্যমান হবে। ডিরেক্টরি অবজেক্টের ওপর cleanup() ফাংশন কল করলে এটি মুছে যাবে।

>>> f.name
'C:/python36\\tmp9wrjtxc_'
>>> f.cleanup()

mkstemp()

এই ফাংশনটিও TemporaryFile() ফাংশনের মতো একটি অস্থায়ী ফাইল তৈরি করে। এছাড়া suffix এবং prefix প্যারামিটার রয়েছে যা তৈরি হওয়া টেম্পরারি ফাইলের সাথে যোগ করা যায়। TemporaryFile()-এর বিপরীতে, তৈরি ফাইলটি অটোমেটিক্যালি মুছে যাবে না। এটি ম্যানুয়ালি মুছে ফেলতে হবে।

>>> f = tempfile.mkstemp(suffix='.tp')
C:\Users\acer\AppData\Local\Temp\tmpbljk6ku8.tp

mkdtemp()

এই ফাংশনটিও অপারেটিং সিস্টেমের টেম্প ফোল্ডারে একটি অস্থায়ী ডিরেক্টরি তৈরি করে এবং এর অ্যাবসোলিউট পাথনেম ফেরত দেয়। স্পষ্টভাবে লোকেশন নির্ধারণ করতে dir প্যারামিটার ব্যবহার করুন। এই ফোল্ডারটিও অটোমেটিক্যালি মুছে যাবে না।

>>> tempfile.mkdtemp(dir="c:/python36")
'c:/python36\\tmpruxmm66u'

gettempdir()

এই ফাংশনটি অস্থায়ী ফাইল সংরক্ষণের জন্য ডিরেক্টরির নাম ফেরত দেয়। এই নাম সাধারণত tempdir এনভাॅयरনমেন্ট ভেরিয়েবল থেকে পাওয়া যায়। উইন্ডোজে এটি সাধারণত user/AppData/Local/Temp বা windowsdir/temp বা systemdrive/temp। লিনাক্সে এটি সাধারণত /tmp। এই ডিরেক্টরিটি dir প্যারামিটারের ডিফল্ট ভ্যালু হিসেবে ব্যবহৃত হয়।

>>> tempfile.gettempdir()
'C:\\Users\\acer\\AppData\\Local\\Temp'

এই আর্টিকেলে tempfile মডিউলের ফাংশনগুলো ব্যাখ্যা করা হয়েছে।

  1. পাইথনে uuencode ফাইল এনকোড ও ডিকোড করা

  2. পাইথনে xlsxwriter মডিউল ব্যবহার করে এক্সেল ফাইল তৈরি ও লেখা

  3. পাইথনে ডিরেক্টরি ও ফাইল লিস্ট করা

  4. পাইথনে openpyxl ব্যবহার করে এক্সেল ফাইল পড়া ও লিখা