我正在尝试将多个文件写入目录,每个文件之间的变化很小(例如,增量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'
任何想法都非常感激!
答案 0 :(得分:1)
首先,使用os.path.join
,它会让您的生活更轻松。
在我看来,strftime
的第一次和最后一次调用是在不同的时间发生的(你在第一次调用中省略了下划线)。该脚本找不到该目录,因为它不存在。一个人可能会在几秒钟之前命名,甚至可疑,我敢打赌。
尝试用
替换您的第一个if
语句
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"))