2016-04-08 4 views
1

Ich erhalte diesen Fehler finden:os.walk kann nicht XML-Datei

source = open(source, "rb") IOError: [Errno 2] No such file or directory: 'XXX.xml'

ich die Datei einfach in dem Verzeichnis vorhanden, aber es wird sie nicht finden. Ich glaube, ich muss die "Dirs" aus meiner For-Schleife verwenden?

jdata = json.load(open(json_path)) 
if os.path.isdir(osWalkpath): 
    for root, dirs, files in os.walk(path): 
     print root, dirs, files 
     for key, value in jdata.iteritems(): 
      for name in files: 
       try: 
        dirs.remove('.svn') 
       except ValueError: 
        pass 
       with open(os.path.join(root, name)) as fle: 
        content = fle.read() 
       FindName(content, key, name, value) # <--- It complains here 

def FindName(content, key, name, value): 
    if name.endswith('.arxml') and re.search(Wordboundry(key), content): 
     print "Name", key, "was found in", name, "\n" 
     OverrideXML(key, value, name) 

Es scheint so, als ich geben Sie den vollständigen Pfad, wo die Datei ist es es zu finden, aber wenn ich es nur einen Teil des Weges geben wird sie nicht finden.

Ex:

"C:\MyPath\XML\Dir1\ #Full path where the file exist 
"C:\MyPath\XML\ #Not the full path (but file exist in the subdir "Dir1) and gives error since it can't find the XML 

Einige Ausgänge:

Name XYZ was found in XXX.xml <--- like wtf it finds the file

+0

Und was ist die Frage? Sie wissen genau, was falsch ist und was zu tun ist, damit es funktioniert. – apr

Antwort

1

Sie Muss den vollständigen Pfad der Datei geben, da sonst das Betriebssystem die Datei im aktuellen Verzeichnis suchen.

Wenn Sie nicht den vollständigen Pfad angeben möchten, ändern Sie Ihr aktuelles Arbeitsverzeichnis (os.chdir). Bedenken Sie jedoch, dass Sie Ihr Arbeitsverzeichnis ändern, und Sie können nicht auf Dateien im Vorschauverzeichnis zugreifen, ohne es erneut zu ändern.

Ich empfehle dringend, den vollständigen Pfad der Datei zu informieren.

0

Die Lösung

xx = os.path.relpath(os.path.join(root, name)) 
FindName(content, key, xx, value) 
Verwandte Themen