1

我正在尝试将多个文件写入一个目录,每个文件之间的更改很少(例如增量 id 编号)当我尝试运行我的程序时,它在写入大约 5 个文件后失败。但是当我再次尝试并重新选择源文件时,它可以工作。这是我的代码:

if not os.path.isdir(self.fDirectory + "/AutoGen" + strftime("%Y-%m-%d %H:%M:%S",           gmtime())):
        os.mkdir(self.fDirectory + "/AutoGen" + strftime("%Y-%m-%d_%H.%M.%S", gmtime()))

    anum = 0
    for x in range(len(self.csvdata)-1):
        for y in range(len(self.csvdata[x+1])):
            self.myRoot.find(self.csvdata[0][y]).text = self.csvdata[x][y]
        anum+=1
        myTree.write(self.fDirectory + "/AutoGen" + strftime("%Y-%m-%d_%H.%M.%S", gmtime()) + "/" + self.filename + "_" + str(anum) + ".xml")

这是我得到的错误:

Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python32\lib\tkinter\__init__.py", line 1399, in __call__
return self.func(*args)
File "C:\Users\CNash\Documents\XML Generator\XMLGen.py", line 148, in doIt
myTree.write(self.fDirectory + "/AutoGen" + strftime("%Y-%m-%d_%H.%M.%S", gmtime()) + "/" + self.filename + "_" + str(anum) + ".xml")
File "C:\Python32\lib\xml\etree\ElementTree.py", line 836, in write
file = open(file_or_filename, "wb")
 IOError: [Errno 2] No such file or directory: 'C:/Users/CNash/Documents/XML Generator/AutoGen2012-07-31_20.23.52/EXuTest_DOCD00140_6.xml'

任何想法都非常感谢!

4

1 回答 1

1

一方面,使用os.path.join,它会让你的生活更轻松。

在我看来,第一个和最后一个调用strftime发生在不同的时间(你在第一个调用中省略了下划线)。脚本找不到目录,因为它不存在。我敢打赌,一个在几秒钟前命名的人可能,甚至是可疑的,确实如此。

尝试将您的第一个if-statement替换为

dirname = os.path.join(self.fDirectory,strftime("AutoGen%Y-%m-%d_%H.%M.%S",gmtime()))

if not os.path.isdir(dirname):
    os.mkdir(dirname)

最后一行:

myTree.write(os.path.join(dirname, self.filename + "_" + str(anum) + ".xml"))
于 2012-07-31T20:48:55.113 回答