2012-03-30 12 views
0

Ich setze derzeit zusammen ein Skript in Python, den folgenden tun: -Zugriff auf dynamisch-Named-Verzeichnis in Python

  • ein Verzeichnis in meinem Dropbox-Ordner
  • erstellen ein Unterverzeichnis namens Create 'Spartacus' an diesem Ort mit der Namenskonvention von Datum und Uhrzeit der Erstellung
  • In diesem Verzeichnis erstellen Sie eine Datei mit dem Namen iprecord.txt und Informationen werden dann in diese Datei geschrieben werden.

Hier ist mein Code thusfar v2.7 mit Python auf Windows 7: -

import os 
import time 
import platform 
import urllib 

current_dir = os.getcwd() 
targetname = "Spartacus" 
target_dir = os.path.join(current_dir, targetname) 
timenow = time.strftime("\%d-%b-%Y %H-%M-%S") 

def directoryVerification(): 
    os.chdir(current_dir) 
    try: 
     os.mkdir('Spartacus') 
    except OSError: 
     pass 
    try: 
     os.system('attrib +h Spartacus') 
    except OSError: 
     pass 

def gatherEvidence(): 
    os.chdir(target_dir) 
    try: 
     evidential_dir = os.mkdir(target_dir + timenow) 
     os.chdir(evidential_dir) 
    except OSError: 
     pass 
    f = iprecord.txt 
    with f as open: 
     ip_addr = urllib.urlopen('http://www.biranchi.com/ip.php').read() 
     f.write("IP Address:\t %s\t %s" % ip_addr, time.strftime("\%d-%b-%Y %H-%M-%S")) 


x = directoryVerification() 
y = gatherEvidence() 

Ich halte auf einen Fehler in Zeile bekommt 26, wobei es nicht den vollständigen Pfad zu dem dynamisch genannten Verzeichnis auflösen kann (Datum und Uhrzeit) eins. Ich habe den Wert von "evidential_dir" ausgedruckt und es wird als Null angezeigt.

Irgendwelche Hinweise, wo ich falsch liege? Danke

PS: Irgendwelche anderen Ratschläge auf meinem Code, um es zu verbessern, würde geschätzt werden PPS: Irgendwelche Ratschläge, wie man das Standardverzeichnis für "Dropbox" findet? Gibt es eine Möglichkeit, ein Dateisystem nach einem Verzeichnis namens "Dropbox" zu durchsuchen und den Pfad zu erfassen?

Antwort

0

os.mkdir gibt nichts zurück.

evidential_dir = target_dir + timenow 
try: 
    os.mkdir(evidential_dir) 
except OSError: 
    pass 
os.chdir(evidential_dir) 
1

os.mkdir() gibt keinen Pfadnamen zurück, wie Sie vielleicht denken. Es scheint, als ob Sie an verschiedenen Stellen Ihres Codes inkonsistente Methoden der gleichen Sache ausführen. Try this:

evidential_dir = os.path.join(target_dir, timenow) 
os.mkdir(evidential_dir) 

Und Ihre anderen Linie beheben:

f = "iprecord.txt"