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

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"))
于 2012-07-31T20:48:55.113 に答える