在Python中访问动态命名目录

时间:2012-03-30 16:33:41

标签: python windows null

我目前正在用Python编写一个脚本,它将执行以下操作: -

  • 在我的Dropbox文件夹中创建名为“Spartacus”
  • 的目录
  • 使用创建日期和时间的命名约定在此位置创建子目录
  • 在此目录中,创建一个名为iprecord.txt的文件,然后将信息写入此文件。

这是我在Windows 7上使用Python v2.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()

我继续在第26行收到错误,因为它无法解析动态命名目录(日期和时间)的完整路径。我已经打印出'evidential_dir'的值,它显示为Null。

关于我哪里出错的指示?感谢

PS:对我的代码提出任何其他建议以改进它将不胜感激 PPS:关于如何找到'Dropbox'的默认目录的任何建议?有没有办法扫描文件系统中的“Dropbox”目录并捕获路径?

2 个答案:

答案 0 :(得分:1)

os.mkdir()不会像您想象的那样返回路径名。您似乎在代码的不同位置执行相同操作的不一致方法。 试试这个:

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

并修复你的另一行:

f = "iprecord.txt"

答案 1 :(得分:0)

os.mkdir不返回任何内容。

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