2015-11-09 9 views
7

मैं प्रोग्रामिंग करने के लिए नया हूँ, यह वास्तव में कोडिंग के साथ मेरी पहली काम काम है। नीचे मेरा कोड एक त्रुटि फेंक रहा है:अजगर WindowsError: [त्रुटि 123] फ़ाइल नाम, निर्देशिका का नाम, या वॉल्यूम लेबल वाक्य रचना गलत है:

WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect. 

मैं यह नहीं ढूंढ पा रहा हूं कि समस्या कहां है।

import os 

folders = ["pdcom1", "pdcom1reg", "pdcomopen"] 


for folder in folders: 
    path = r'"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"' 
    for file in os.listdir(path): 
     print file 
+4

आप सिंगल और डबल कोट्स का उपयोग करते हैं। यह एक मुद्दा हो सकता है! – jkalden

+0

अच्छी तरह से, वह था! धन्यवाद। अगर जोड़ा गया कि एकल एकल उद्धरण एक अलग समाधान का काम कर रहा है, और मुझे लगता है कि मैं उन्हें हटाने के लिए भूल गया था। – AlliDeacon

+2

डिबगिंग टिप: सुनिश्चित करें कि डेटा आप कार्यों कि प्रतीत होता है दुर्व्यवहार कर रहे हैं करने के लिए फ़ीड सही है। एक सरल 'प्रिंट (पथ)' दिखाता है कि डबल कोट्स स्ट्रिंग के मान का हिस्सा थे। –

उत्तर

14

चूंकि समस्या हल हो गई, मैंने इसे एक उत्तर के रूप में रखा।

सिंगल और डबल उद्धरण का उपयोग न करें, विशेष रूप से जब आप इसे के सामने r के साथ एक कच्चे स्ट्रिंग परिभाषित करते हैं।

सही कॉल तो

path = r"C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1" 

या

path = r'C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1' 
-1

मैं एक संबंधित स्पाइडर के भीतर काम कर समस्या हुई है, लेकिन समस्या यह भागने चरित्र ("\") के बीच संबंध होने लगता है और "\" पथ नाम यहां मेरा चित्रण और समाधान है (नोट एकल \ बनाम डबल \\):

path = 'C:\Users\myUserName\project\subfolder' 
path # 'C:\\Users\\myUserName\\project\subfolder' 
os.listdir(path)    # gives windows error 
path = 'C:\\Users\\myUserName\\project\\subfolder' 
os.listdir(path)    # gives expected behavior 
+0

समस्या स्ट्रिंग पर डबल कोटेशन थी। ओपी पहले ही स्ट्रिंग को कच्चे स्ट्रिंग 'आर "पथ" में परिवर्तित कर चुका है, इसलिए बचने वाले वर्ण समस्या नहीं थे। – DJK

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