Anzeige:
Ergebnis 1 bis 3 von 3

Thema: python, os.chdir

  1. #1
    Registrierter Benutzer
    Registriert seit
    19.06.2003
    Beiträge
    27

    python, os.chdir

    Hallo,

    irgendwie mag mich os.chdir nicht...


    mein Programm sieht ungefähr wie folgt aus,

    d.h. ich erzeuge mir dynamisch (per Schleife) bestimmte Strings, die dem
    Verzeichnisnamen entsprechen, die ich als workverzeichnis verwenden will (will
    in dem verzeichnis dann extern gewisse Shell-Skripte aufrufen...)


    Code:
    #!/usr/bin/python
    
    import os
    
    startwert = 7
    endwert = 15
    
    def ausfuehren(startwert,endwert) :
       for k in range(startwert,endwert+1) :
           if k<10 :
              zahlA = ['0',str(k)]
              zahlB = "".join(zahlA)
           else :
              zahlB = str(k)
    
           #os.chdir(os.path.join(os.getcwd(),
    
           zeile1A = ["pc",zahlB,"_statistik"]
           zeile1B = "".join(zeile1A)
           zeil3 = os.path.join(os.getcwd(),zeile1B)
    
           print zeil3
           
           os.chdir(os.path.join(os.getcwd(),zeile1B))
    ./prg02.py
    /home/ruga/pc07_statistik
    hallo
    /home/ruga/pc07_statistik/pc08_statistik
    hallo
    Traceback (most recent call last):
    File "/home/ruga/prg02.py", line 62, in <module>
    ausfuehren(startwert,endwert)
    File "/home/ruga/prg02.py", line 28, in ausfuehren
    os.chdir(os.path.join(os.getcwd(),zeile1B))
    OSError: [Errno 2] No such file or directory: '/home/ruga/pc07_statistik/pc08_statistik'

    Wo liegt hier mein Denkfehler?

    Ruga

  2. #2
    Registrierter Benutzer
    Registriert seit
    10.10.2005
    Beiträge
    39
    hallo,

    ich nehme mal an die verzeichnisse heissen

    /home/ruga/pc07_statistik
    /home/ruga/pc08_statistik
    /home/ruga/pc09_statistik
    usw.

    dein problem ist, dass du beim ersten schleifendurchlauf (wenn k = 7), in das verzeichnis "/home/ruga/pc07_statistik" wechselst, was auch klappt. im naechsten durchlauf (k = 8), liefert dir os.getcwd() auch genau diesen wert und du haengst dann noch "pc08_statistik" hintendran, das ergibt also "/home/ruga/pc07_statistik/pc08_statistik" und dieses verzeichnis existiert nicht.

    du musst am ende der schleife das working directory immer wieder nach "/home/ruga" aendern, damit du fuer jeden schleifendurchlauf den gleichen ausgangspunkt hast. auf den meisten systemen wird das uebergeordnete verzeichniss mit ".." bezeichnet. du musst also nach "/home/ruga/pc07_statistik/.." wechseln, was gleichbedeutend ist mit "/home/ruga"

    fueg als letzte zeile in deiner schleife mal diese zeile ein:

    Code:
    os.chdir (os.path.join (os.getcwd (), ".."))

    das ist ist zwar nicht die schoenste loesung, aber sie funktioniert...

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.06.2003
    Beiträge
    27
    Hallo,

    ja stimmt, vielen Dank

    Ruga

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •