2009-12-06 8 views
13

मैं इसे पढ़ने के बाद फ़ाइल को निकालने का प्रयास कर रहा हूं, लेकिन "विंडोज त्रुटि: [त्रुटि 32] प्रक्रिया फ़ाइल तक नहीं पहुंच सकती क्योंकि यह किसी अन्य प्रक्रिया द्वारा उपयोग किया जा रहा है "पायथन इसे बंद करने के बाद फ़ाइल को नहीं हटा सकता है, "किसी अन्य प्रक्रिया द्वारा उपयोग किया जा रहा है"

file = open(self.filePath) 
for line in file: 
     #do things 
file.close() 

os.remove(self.filePath) #throws error 

os.rename(self.filePath, self.filePath + "old") #throws same error 

कोई विचार ??

धन्यवाद!

अद्यतन: मैंने बस अपने (विंडोज़ 7) बॉक्स को फिर से शुरू किया, ग्रहण शुरू किया, मेरी स्क्रिप्ट की पहली पंक्ति में os.remove ("c: \ file \ file.txt") को स्थानांतरित कर दिया, भाग गया और एक ही त्रुटि मिली ।

अद्यतन 2: मैंने फ़ाइल पर नेविगेट करने के लिए विंडोज एक्सप्लोरर का उपयोग किया .. पहली बार मैं इसे हटा नहीं पाया, इसका उपयोग "सिस्टम" द्वारा किया जा रहा था। दूसरा प्रयास डिलीट ठीक काम किया। फाइल अब और नहीं है। अब जब मैं चलाता हूं os.remove ("c: \ file \ file.txt") विंडोज एरर: [त्रुटि 32] प्रक्रिया फ़ाइल तक नहीं पहुंच सकती है क्योंकि इसका उपयोग किसी अन्य प्रक्रिया द्वारा किया जा रहा है: 'c: \ file \ file। txt ' तो मैं विंडोज एक्सप्लोरर में देखता हूं और फ़ाइल वापस, खाली है। मैं एक्सप्लोरर में हटा सकता हूं, फिर जब मैं स्क्रिप्ट को हटाने के लिए चलाता हूं, तो यह त्रुटि फेंकता है (और खाली फ़ाइल बनाता है)। किसी भी विचार पर क्या हो सकता है?

अद्यतन 3: मैं मूर्ख हूं। मैं एक वस्तु का आरंभीकरण में फ़ाइल खोलने गया था जब मैं स्क्रिप्ट के शीर्ष पर "निकालें" ले जाकर जांच की, मैं ऊपर डाल दिया जाना चाहिए था, नहीं अपने समय लेने के लिए मेरी वस्तुओं

माफी बनाने के बाद , मैं कुछ सप्ताहांत पर काम कर रहा हूं जो कल के कारण है और जब यह

+2

पकड़ने की प्रक्रिया एक्सप्लोरर या कुछ समान है और वास्तव में फ़ाइल को खोलने के लिए एक नज़र डालने का प्रयास करें। –

+0

यदि आप इसे खोलने से पहले फ़ाइल को हटाने का प्रयास करते हैं, तो क्या यह काम करता है? –

+0

फ़ाइलपैथ एक निर्देशिका है? – wallyk

उत्तर

0

नहीं चलाएगा तो इसके लिए बहुत सारे संभावित कारण हैं। हालांकि, सबसे अधिक संभावना यह है कि आपके पास एक निर्देशिका विंडो खुलती है जिसमें फ़ाइल है, या ऐसी विंडो बंद कर दी गई थी और विंडोज ने अभी तक निर्देशिका को अपने कैश से फ्लश नहीं किया है। आप जिस निर्देशिका विंडो को देख रहे थे उसे बंद करने का प्रयास करें और पुनः प्रयास करें।

+0

हाय .. कृपया मेरे quesion को अद्यतन देखें। मैंने बस विंडोज़ को फिर से शुरू किया, ग्रहण खोला, ओएस को स्थानांतरित कर दिया।स्क्रिप्ट के शीर्ष पर लाइन हटाएं, भाग गया और एक ही त्रुटि मिली। इस विंडोज़ सत्र – alby

8

एक और संभावना यह है कि जब भी आप इसे हटाने या नाम बदलने का प्रयास करते हैं तो वायरस चेकर में फ़ाइल खुली होती है। यह अक्सर नहीं होता है लेकिन जब ऐसा होता है, तो यह ट्रैक करने के लिए वास्तव में परेशान है।

+1

पर एक्सप्लोरर नहीं खोलता है मैंने वायरस चेकर्स को भी इस तरह के कोड को पेंच देखा है। मेरा सुझाव WindowsError को पकड़ना है और यदि यह विफल हुआ है क्योंकि फ़ाइल उपयोग में है, तो थोड़े समय के लिए सोएं और पुनः प्रयास करें। –

6

Unlocker (आसान) या Process Explorer का उपयोग यह देखने के लिए कि कौन सी प्रोग्राम फ़ाइल खोलती है।

(के रूप में Anon ने सुझाव दिया)

+0

अनलॉकर बहुत अच्छा है – alby

+0

यदि यह समस्या हल हो जाती है, तो इस उत्तर को स्वीकृत उत्तर के रूप में चिह्नित करने पर विचार करें। –

2

मैं एक एक्सेस-एबी के साथ अभी एक ही समस्या है। प्रक्रिया एक्सप्लोरर से पता चलता है कि .. 'python.exe' उस फ़ाइल का उपयोग कर रहा है जिसे मैं हटाना चाहता हूं। मैं पायथन को मार नहीं सकता। यह एक कष्टप्रद समाधान है।

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

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