• 0

مشكلة في إضافة اسم الملف للمجلد الأب في بايثون؟

عندي الكود التالي ووظيفته كما هو موصوف بالعنوان أن يخزن قيمة ملف txt بدون ال extension ويضيفه إلى بداية إسم المجلد الموجود به هذا الملف

import os
from os.path import basename

main_dir = 'E:\Python\Work\\trying'
os.chdir(main_dir)

files = os.listdir()

for f in files:
	sub_dir = f
	os.chdir(main_dir + '\\' + sub_dir)
	
	
	first_file = str(os.listdir()[0])
	first_file = os.path.splitext(first_file)[0]
	
	os.rename(main_dir + '\\' + sub_dir, main_dir + '\\' + first_file + ' ' + sub_dir)

الناتج في ال dos cmd كان كما يظهر بالمرفقات

لدي في ال directory الرئيسي (E) مجلد يدعى trying به ثلاث مجلدات New folder 1 و New folder 2 و New folder 3

وبهم على التوالي ملفات 1.txt و 2.txt و 3.txt

المطلوب هو تغيير أسماء المجلدات بإضافة أسماء الملفات الداخلية (بدون الإمتداد) إلى بداية اسم المجلدات لتصبح كالتالي:

1New folder 1 و 2New folder 2 و 3New folder 3

21640568_1834307999931279_958792435_o.png

Untitled.png

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


رابط هذه المساهمة
  • 1

تحياتي لك صديقي,
 

كل ما عليك فعله هو إعادة التوجيه الى الملف الجذر

os.chdir(main_dir)

قبل محاولة اعادة التسمية.

os.chdir(main_dir)
os.rename(main_dir + '\\' + sub_dir, main_dir + '\\' + first_file + ' ' + sub_dir)

 

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

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


رابط هذه المساهمة
  • 0

ملحوظة، الكود التالي يعمل على Linux بدون أي مشاكل

import os
from os.path import basename

main_dir = os.getcwd() + '/trying'
os.chdir(main_dir)

files = os.listdir(main_dir)

for f in files:
    sub_dir = f
    os.chdir(main_dir + '/' + sub_dir)
    new_dir = main_dir + '/' + sub_dir
    
    first_file = str(os.listdir(new_dir)[0])
    first_file = os.path.splitext(first_file)[0]
    
    os.rename(main_dir + '/' + sub_dir, main_dir + '/' + first_file + ' ' + sub_dir)
 

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


رابط هذه المساهمة

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

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

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


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

تسجيل الدخول

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


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