2012-07-31 1 views
1

각 파일 (예 : 증분 ID 번호) 사이에 거의 변경되지 않은 디렉토리에 여러 파일을 쓰려고합니다. 내 프로그램을 실행하려고하면 약 5 개의 파일을 작성한 후 실패합니다. 그러나 다시 시도해보고 소스 파일을 다시 선택하면 작동합니다.파이썬 etree xml 쓰기 문제

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' 

어떤 아이디어가 많이 감사합니다!

+1

미안하지만이 etree 또는 XML과는 아무 상관이 없습니다. 당신은 겉으로는 –

답변

1

하나의 경우 os.path.join을 사용하면 더 쉽게 사용할 수 있습니다.

strftime에 대한 첫 번째 및 마지막 호출이 다른 시간에 발생한다는 사실을 알게되었습니다 (첫 번째 문장에서 밑줄을 생략했습니다). 존재하지 않기 때문에 스크립트가 디렉토리를 찾을 수 없습니다. 몇 초 전의 이름으로 아마도 이 의심스럽게 일 것입니다.

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

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

와 함께 첫 번째 if -statement를 교체 시도하고 마지막 라인 :

myTree.write(os.path.join(dirname, self.filename + "_" + str(anum) + ".xml")) 
+0

에 쓸 python에 대한 올바른 경로를 제공하지 않았습니다. 그게 완전히 이해가되고 나는 그걸로 뭔가 관련이있을 거라 생각했지만 그것을 알아낼 정도로는 몰랐습니다. 당신의 코드와 strftime의 끝 부분에 ")"을 추가하여 윈도우즈 경로 규칙과 일치하는 세미콜론이 아닌 시간을 필요로했습니다. 이제 완벽하게 작동하는 것 같습니다! – nashter

+0

기꺼이 도와 드리겠습니다. –