• 0

استخراج امتداد الملف بلغة البايثون

هل يمكن استخراج الامتداد من اسم الملف في بايثون و كيف يتم ذلك ؟

1 شخص أعجب بهذا

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 1

لنفترض أنه لديك اسم الملف على شكل سلسلة نصية بهذا الشكل:

example.jpeg

للحصول على اللاحقة نقوم بتحويل السلسلة إلى مصفوفة بإستعمال الدالة split و تمرير مُحدد الفصل المحرف "." حتى يتم الفصل على أساسه. و بالتالي يُصبح لدينا مصفوفة مكونة من عنصرين example و jpeg.

['example', 'jpeg']

و لإستخراج اللاحقة من هذه المصفوفة نجلب آخر عنصر أي الموجود في الفهرس -1 بهذا الشكل:

filename = "example.jpeg"
extension = filename.split(".")[-1]
print(extension) #jpeg

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

لنفترض ان لديك ملف 
 

file.py

وتريد معرفته يمكنك عن طريق تحويل اسم ملف الي string و تقسيم اسم الي جزئين مثلا 

1 --> file
2 --> py

1- يمكنك بكل سهوله فعل ذلك عن طريق 

 

file_name = "file.py"
file_name = filename.split(".")
extension = file_name[-1] # py
print(extension) # py

2- أو عن طريق استخدام os.path.splitext --> تساعدك في تقسيم الاسم إلي جزئين هي مخصصه لتعامل مع file 
 

import os
filename, file_extension = os.path.splitext('/path/to/somefile.ext')

print(filename) # '/path/to/somefile'
print(file_extension) # '.ext'

في تعامل مع File أفضل استخدام  os.path.splitext وليس split الخاصه ب string 
بعد اﻷمثله لماذا أفضل استخدام splittext 
 

"png".split(".")[-1]
'png'    # But file doesn't have an extension

- هنا لايوجد أي extension هذا شئ غير صحيح أفضل استخدام splitext لانها تعتمد علي os module 

3- حلول أخري استخدام 

- pathlib 

- re 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية
  • 0

أيضا يوجد طريقة أخرى و مستخدمة بشكل أكبر: 
 

import os
filename, file_extension = os.path.splitext('/path/to/somefile.ext')
file_extension
#الخرج'.ext'

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
شارك على الشبكات الإجتماعية

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن