ডিরেক্টরিটি না থাকলে আপনিও এটি তৈরি করতে চাইতে পারেন।
উত্স , যদি এটি এখনও সেখানে থাকে।
================================================== ===================
পাইথন ≥ 3.5 এ, ব্যবহার করুন pathlib.Path.mkdir
:
from pathlib import Path
Path("/my/directory").mkdir(parents=True, exist_ok=True)
পাইথনের পুরানো সংস্করণগুলির জন্য, আমি ভাল গুণাবলীর সাথে দুটি উত্তর দেখতে পাচ্ছি, যার মধ্যে একটি ছোট ত্রুটি রয়েছে, তাই আমি এটিকে আমার গ্রহণ করব:
চেষ্টা করুন os.path.exists
, এবং os.makedirs
সৃষ্টির জন্য বিবেচনা করুন ।
import os
if not os.path.exists(directory):
os.makedirs(directory)
মতামত এবং অন্য কোথাও উল্লিখিত হিসাবে, একটি দৌড়ের শর্ত রয়েছে - যদি ডিরেক্টরিটি os.path.exists
এবং os.makedirs
কলগুলির মধ্যে ডিরেক্টরি তৈরি করা হয় তবে os.makedirs
একটিটি দিয়ে ব্যর্থ হবে OSError
। দুর্ভাগ্যক্রমে, কম্বল ধরা OSError
এবং চালিয়ে যাওয়া নির্বোধ নয়, কারণ এটি অন্যান্য কারণগুলির যেমন ডিরেক্টরি অপর্যাপ্ত অনুমতি, পূর্ণ ডিস্ক ইত্যাদির কারণে ডিরেক্টরিটি তৈরি করতে ব্যর্থতা উপেক্ষা করবে it
একটি বিকল্প হ'ল আটকে থাকা OSError
এবং এমবেড করা ত্রুটি কোডটি পরীক্ষা করা (দেখুন পাইথনের ওএসইরর থেকে তথ্য পাওয়ার কোনও ক্রস-প্ল্যাটফর্ম উপায় আছে ):
import os, errno
try:
os.makedirs(directory)
except OSError as e:
if e.errno != errno.EEXIST:
raise
বিকল্পভাবে, সেখানে একটি দ্বিতীয় হতে পারে os.path.exists
, তবে মনে করুন যে অন্য কেউ প্রথম চেকের পরে ডিরেক্টরি তৈরি করেছে, তারপরে দ্বিতীয়টির আগে এটি সরিয়ে ফেলেছে - আমরা এখনও বোকা হতে পারি।
অ্যাপ্লিকেশনটির উপর নির্ভর করে, সামনের কাজকর্মের ঝুঁকি ফাইল অনুমতিগুলির মতো অন্যান্য কারণগুলির দ্বারা উত্থাপিত বিপদের চেয়ে কম বা কম হতে পারে। বিকাশকারীকে কোনও প্রয়োগকরণ চয়ন করার আগে নির্দিষ্ট অ্যাপ্লিকেশনটি বিকাশিত এবং এর প্রত্যাশিত পরিবেশ সম্পর্কে আরও জানতে হবে।
পাইথনের আধুনিক সংস্করণগুলি এই কোডটি কিছুটা উন্নত করে, উভয়ই প্রকাশ করে FileExistsError
(3.3+) ...
try:
os.makedirs("path/to/directory")
except FileExistsError:
# directory already exists
pass
... এবং অনুমতি দিয়ে একটি শব্দ যুক্তি os.makedirs
নামকexist_ok
(3.2+ মধ্যে)।
os.makedirs("path/to/directory", exist_ok=True) # succeeds even if directory exists.
os.stat
পরিবর্তে আপনি সঞ্চালন করতে চাইতে পারেন , একই মুহুর্তে ডিরেক্টরি উভয়ই বিদ্যমান এবং একটি ডিরেক্টরি কিনা তা দেখতে।