2010-09-15 10 views
15

मुझे आश्चर्य है कि क्या पाइथन का shutil.move लिनक्स पर परमाणु है? क्या व्यवहार अलग है यदि स्रोत और गंतव्य फ़ाइलें दो अलग-अलग विभाजनों पर हैं या यह वही विभाजन है जब वे एक ही विभाजन पर मौजूद हैं?क्या पाइथन का shutil.move() लिनक्स पर परमाणु है?

मुझे यह जानकर अधिक चिंतित है कि क्या shutil.move परमाणु है यदि स्रोत और गंतव्य फाइलें एक ही विभाजन पर हैं!

+0

क्या आपने स्रोत पढ़ा था? यह आपके कंप्यूटर पर आपके पायथन पुस्तकालय में उपलब्ध है। 'शिलिल मॉड्यूल' में आपने क्या देखा? –

उत्तर

17

फाइलें अलग-अलग फाइल सिस्टम पर हैं, तो यह परमाणु नहीं है। उस स्थिति में, पायथन स्रोत और गंतव्य फ़ाइल खोलता है, स्रोत से पढ़ने और desination के लिए लिखने पर loops और आखिरकार स्रोत फ़ाइल को अनलिंक करता है।

यदि स्रोत और गंतव्य फ़ाइल एक ही फ़ाइल सिस्टम पर हैं, तो पाइथन नाम() सी कॉल का उपयोग करता है, जो परमाणु है।

+0

thnx! यह संदेह साफ करता है! – Kisalay

+0

@AR हां यह है (कम से कम लिनक्स पर)। एक ही फाइल सिस्टम पर एक निर्देशिका को स्थानांतरित करना एक परमाणु ऑपरेशन है। 'shutil.move ('/ tmp/aa /', '/ tmp/bb /' परिणाम इस सिस्टम कॉल' नाम बदलें ("/ tmp/aa", "/ tmp/bb/aa")। निर्देशिका का नाम बस फाइल सिस्टम में चारों ओर ले जाया गया है। – nos

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^