कहें कि मेरे पास एक इनपुट फ़ाइल है, और एक लक्ष्य निर्देशिका है। मैं कैसे निर्धारित करूं कि इनपुट फ़ाइल एक ही हार्ड ड्राइव (या विभाजन) पर लक्षित निर्देशिका के रूप में है या नहीं?यह निर्धारित करने के लिए कि कोई निर्देशिका एक ही विभाजन पर है
मैं जो करना चाहता हूं वह एक प्रतिलिपि है अगर यह एक अलग है, लेकिन अगर यह वही है तो इसे स्थानांतरित करें। उदाहरण के लिए:
target_directory = "/Volumes/externalDrive/something/"
input_foldername, input_filename = os.path.split(input_file)
if same_partition(input_foldername, target_directory):
copy(input_file, target_directory)
else:
move(input_file, target_directory)
CesarB के जवाब के लिए धन्यवाद, same_partition
समारोह लागू किया:
import os
def same_partition(f1, f2):
return os.stat(f1).st_dev == os.stat(f2).st_dev
ध्यान दें कि यह विंडोज़ पर काम नहीं करेगा, जो सभी ड्राइव के लिए st_dev 0 के रूप में छोड़ देता है। (शायद प्रश्नकर्ता के लिए कोई मुद्दा नहीं है क्योंकि वह ओएसएक्स और लिनक्स टैग निर्दिष्ट करता है) – Brian