কীভাবে অস্থায়ী ডিরেক্টরি তৈরি করতে হবে এবং পাইথনে পাথ / ফাইলের নাম পাবেন
কীভাবে অস্থায়ী ডিরেক্টরি তৈরি করতে হবে এবং পাইথনে পাথ / ফাইলের নাম পাবেন
উত্তর:
মডিউল mkdtemp()
থেকে ফাংশনটি ব্যবহার করুন tempfile
:
import tempfile
import shutil
dirpath = tempfile.mkdtemp()
# ... do stuff with dirpath
shutil.rmtree(dirpath)
with tempfile.TemporaryDirectory() as dirpath:
এবং প্রাসঙ্গিক পরিচালকটি থেকে বেরিয়ে আসার পরে অস্থায়ী ডিরেক্টরিটি স্বয়ংক্রিয়ভাবে পরিষ্কার হয়ে যাবে। docs.python.org/3.4/library/…
পাইথন 3 সালে TemporaryDirectory মধ্যে tempfile মডিউল ব্যবহার করা যাবে।
এটি সরাসরি উদাহরণগুলি থেকে :
import tempfile
with tempfile.TemporaryDirectory() as tmpdirname:
print('created temporary directory', tmpdirname)
# directory and contents have been removed
আপনি যদি ডিরেক্টরিটি কিছুটা দীর্ঘ রাখতে চান তবে এরকম কিছু করা যেতে পারে (উদাহরণ থেকে নয়):
import tempfile
import shutil
temp_dir = tempfile.TemporaryDirectory()
print(temp_dir.name)
# use temp_dir, and when done:
shutil.rmtree(temp_dir.name)
@ ম্যাথিয়াসরোল্যান্ডস যেমন উল্লেখ করেছেন, ডকুমেন্টেশনে আরও বলা হয়েছে যে " cleanup()
পদ্ধতিটি কল করে ডিরেক্টরিটি পরিষ্কারভাবে পরিষ্কার করা যায় "।
অন্য উত্তরের জন্য প্রসারিত করতে এখানে মোটামুটি সম্পূর্ণ উদাহরণ রয়েছে যা ব্যতিক্রমকালেও tmpdir সাফ করতে পারে:
import contextlib
import os
import shutil
import tempfile
@contextlib.contextmanager
def cd(newdir, cleanup=lambda: True):
prevdir = os.getcwd()
os.chdir(os.path.expanduser(newdir))
try:
yield
finally:
os.chdir(prevdir)
cleanup()
@contextlib.contextmanager
def tempdir():
dirpath = tempfile.mkdtemp()
def cleanup():
shutil.rmtree(dirpath)
with cd(dirpath, cleanup):
yield dirpath
def main():
with tempdir() as dirpath:
pass # do something here
পাইথন ৩.২ এবং তারপরে স্টাডলিব https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory এ এর জন্য একটি দরকারী প্রসঙ্গ ব্যবস্থাপনার ব্যবস্থা রয়েছে
আমি যদি আপনার প্রশ্নটি সঠিকভাবে পেয়ে থাকি তবে আপনি অস্থায়ী ডিরেক্টরিতে থাকা ফাইলগুলির নামও জানতে চান? যদি তা হয় তবে এটি ব্যবহার করে দেখুন:
import os
import tempfile
with tempfile.TemporaryDirectory() as tmp_dir:
# generate some random files in it
files_in_dir = os.listdir(tmp_dir)