میخواهیم برنامهای بنویسیم که با کمک آن بتوانیم فایلهای خود را مدیریت کنیم.
نیازهایی که باید این فایل منیجر برطرف کند عبارتند از:
- ساخت یک پوشه جدید
- ساخت یک فایل جدید
- جستجو کردن بر اساس نام فایل
- حذف فایل
- بازیابی فایل
با توجه به نیازمندیهایی که در بالا گفته شد، یک کلاس با نام FileManager
تعریف کنید که همه متدهای جدول زیر را طبق رفتار توضیح داده شده پیادهسازی کند.
class FileManager:
def find(self, name, address):
pass
def create_file(self, name, address):
pass
def create_dir(self, name, address):
pass
def delete(self, name, address):
pass
def restore(self, name):
pass
رفتار | خروجی | متد |
---|---|---|
یک پوشه جدید با نام name در آدرس address می سازد. |
- |
create_dir(name, address) |
یک فایل جدید با نام name در آدرس address ایجاد می کند . |
- |
create_file(name, address) |
یک فایل با نام name را از آدرس address حذف می کند . |
- |
delete(name, address) |
آدرس تمام فایل های با نام name را از آدرس address به بعد برمیگرداند |
List |
find(name, address) |
فایل با نام name را بازیابی می کند. |
- |
restore(name) |
توضیحات بیشتر
- در متد
create_dir
در صورت عدم وجود پوشه باید پوشهای جدید ساخته شود در غیر این صورت نباید هیچ اتفاقی بیفتد! - در متد
create_file
در صورت عدم وجود فایل باید فایلی جدید ساخته شود در غیر این صورت نباید هیچ اتفاق دیگری بیفتد! - در متد
delete
در صورت عدم وجود فایل نباید هیچ اتفاقی بیفتد! - در متد
find
باید یک لیست از تمام آدرسها برگردانده شود و در صورت عدم وجود فایلی با این نام، یک لیست خالی برگردانده شود. ترتیب این آدرسها اهمیتی ندارد. - آدرسهای برگردانده شده از متد
find
باید از آدرس موجود در آرگومانها به بعد باشد (آدرس شامل خود آرگومان نیز میباشد). .دقت شود که ممکن است فایلی در سطوح پایین تر از سطح اول نیز موجود باشد. - متد
restore
- فایل بازیابی شده باید در آدرس قبلی خود قرار گیرد.
- اگر چند فایل هم نام بصورت متوالی حذف شوند باید با هربار صدا زدن متد
restore
فایلها به صورت متوالی و با عکس ترتیب حذف، بازیابی شوند. - باید در عمل حذف و بازیابی محتوای فایل حفظ شود.
- در صورت عدم وجود فایلی برای بازیابی نباید هیچ اتفاقی بیفتد.
- برای حل این سوال میتوانید هر فایل و یا پوشه دیگری که خواستید بسازید.
نمونه
متدهای create_dir
و create_file
fm = FileManager()
fm.create_dir('test', '.')
fm.create_dir('test1', 'test')
fm.create_dir('test2', 'test/test1/')
fm.create_file('test.txt', 'test')
fm.create_file('test.txt', 'test/test1')
fm.create_file('test.txt', 'test/test1/test2')
خروجی: باید پوشهها و فایلهای زیر ایجاد شوند.
test
├── test1
│ ├── test2
│ │ └── test.txt
│ └── test.txt
└── test.txt
متد find
print(fm.find('test.txt', 'test'))
خروجی
['test/test.txt', 'test/test1/test.txt', 'test/test1/test2/test.txt']
متدهای delete
و restore
fm.delete('test.txt', 'test')
fm.delete('test.txt', 'test/test1/')
fm.delete('test.txt', 'test/test1/test2')
fm.restore('test.txt')
fm.restore('test.txt')
خروجی
test
├── test1
├── test2
│ └── test.txt
└── test.txt
نکات
- میتوانید فایل اولیه این سوال را از این لینک دریافت کنید.
- غیر از متد
find
که در آن باید لیست فایلهای مورد نظر را بازگردانید، در بقیهی متدها نیازی به چاپ یا برگرداندن مقداری نیست.
نحوه ارسال
شما باید کلاس FileManager
موجود در فایل source.py
را تکمیل و سپس این فایل را ارسال کنید.
ارسال پاسخ برای این سؤال