اذهب إلى المحتوى

السؤال

نشر

أحتاج إلى تغيير أسماء مجموعة من الملفات في مجلد معين باستخدام البايثون، لنفترض أن لدي ملفات باسم CHEESE_CHEESE_TYPE.*** وأريد حذف جزء CHEESE_ من الاسم ليصبح CHEESE_TYPE.

فما هي أسهل طريقة في البايثون لفعل ذلك؟

Recommended Posts

  • 0
نشر

هنالك عدة طرق لتعديل أسماء مجموعة من الملفات في البايثون، فلو افترضنا أنك موجود حاليا في المجلد الذي تريد تغيير أسماء فيه، وأن حالة أول 7 أحرف من الملفات لا تتغير(يمكنك تغيير طول عدد الأحرف حسب الحاجة 7 أو 8 أو 3 …) فيمكنك في هذه الحالة استخدام هذه الشيفرة البرمجية لتغيير أسماء الملفات:

from glob import glob
from os import rename
for fname in glob('*.prj'):
    rename(fname, fname[8:])

أو يمكنك الاستعانة بدوال مكتبة os لتعديل أسماء الملفات كما في المثال التالي:

$ ls
cheese_cheese_type.bar  cheese_cheese_type.foo
$ python
>>> import os
>>> for filename in os.listdir("."):
...  if filename.startswith("cheese_"):
...    os.rename(filename, filename[7:])
...
>>>
$ ls
cheese_type.bar  cheese_type.foo

مثال آخر حيث سيتأكد من أن أسماء الملفات لا تحتوي على أكثر من كلمة cheese_:

#!/usr/bin/env python
from os import rename, listdir

badprefix = "cheese_"
fnames = listdir('.')

for fname in fnames:
    if fname.startswith(badprefix*2):
        rename(fname, fname.replace(badprefix, '', 1))

المصدر

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...