سؤال

أحاول إعادة تسمية بعض الملفات ، لكن الحصول على خطأ محير*. عندما أقوم بتشغيل هذا:

if os.path.isfile(fullPath):
    print 'fmf exists'
    print fullPath
    print newFilePath
    os.rename(fullPath,newFilePath)

أحصل على الخطأ التالية:

fmf exists
(correct fullPath)
(correct newFilePath, ie. destination)
Traceback (most recent call last):
  File "whatever.py", line 374, in ?
    os.rename(fullPath,newFilePath)
OSError: [Errno 2] No such file or directory

منذ أنا أعرف أن الملف في FullPath موجود ، أنا محير بسبب الخطأ. بالطبع ، NewFilePath غير موجود ، لأن ذلك سيكون غبيًا. أي تلميحات؟

شكرًا! أليكس

*أليس كذلك؟

هل كانت مفيدة؟

المحلول

لا يزال بإمكانك الحصول على الاستثناء إذا حاولت النسخ إلى دليل غير موجود.

نصائح أخرى

لا يمكنني رؤية الأعمال الداخلية الكاملة للرمز الخاص بك ، لذلك هنا يستحق سنتاتي:

قد يحتوي NewFilePath الخاص بك على دليل غير موجود. إذا كان هذا هو الحال ، فعندئذٍ بناءً على نظام التشغيل الخاص بك ، فإن البرنامج غير قادر على إنشاء ملف في دليل غير موجود. يمكن أن يكون خطأك.

أتمنى أن يساعدك هذا

يبدو أن الملصق حل مشكلته ، لكن كان لدي نفس الأعراض ويبدو أن السبب مختلف. تم إنشاء الملف الذي كنت أحاول إعادة تسميته للتو في مكالمة فرعية على السطر السابق. إذا قمت بتشغيل البرنامج النصي الخاص بي مرة أخرى ، لم يكن لدي مشكلة إعادة تسمية ، حيث تم إنشاء الملف في التشغيل السابق ، ولكن إذا قمت بحذف الملف الذي تم إنشاؤه مسبقًا ، فسوف أحصل على نفس المشكلة مع إعادة تسمية. يبدو أن OS.Rename كان يتم استدعاؤه قبل اكتمال العملية الفرعية ، وبالتالي لم يكن موجودًا حتى الآن. لقد أدخلت OS.WAIT () بعد مكالمة العملية الفرعية ، وأعتقد أن هذا قد حل مشكلتي.

كان لدي نفس الخطأ عندما احتوى اسم الملف الجديد على مائلات للأمام ، والتي يتم الخلط بينها وبين فواصل الدليل في UNIX و Linux. على سبيل المثال ، يؤدي إعادة تسمية ملف إلى "4/7 27/2015.txt" إلى دليل غير موجود ويؤدي إلى "لا يوجد ملف أو دليل". يمكنك حل هذا عن طريق استبدال المائل الأمامي بأي حرف مقبول آخر.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top