0

編集:問題はこのコードにはないことがわかりました。実際には、ここに示されているのと同様の方法で動作する単純な問題です。

ファイルに対してさまざまな段階の圧縮を実行するプログラムを作成しています。コードのこの部分は ZIP に圧縮され、次に DMG に圧縮され、ファイルの名前が 1 つの拡張子に変更されます。これはtemp/ディレクトリで行います。

私のコード:

from os import system as sysCmd
from os import rename, remove
import zipfile

...

# STEP 3 - create a zipfile
zip = zipfile.ZipFile(workDir + filename + ".zip", mode='w')
zip.write(workDir + filename + ".datei")
zip.close()

# STEP 4 - Compress to a DMG - THE PROBLEM IS HERE
sysCmd("hdiutil create -fs MS-DOS " + workDir + filename + ".dmg -srcfolder " + workDir + filename + ".zip")  # there is no more pythonesque way :(

# STEP 5  - Rename to  *.datei
remove(workDir + filename + ".datei")  # remove pre-existing datei
rename(workDir + filename + ".dmg", workDir + filename + ".datei")

問題:

zip を作成しますが、ziptemp/myFile.zipから DMG は作成しませんtemp/myFile.dmg

os.renameファイルが存在しないため、もちろんエラーが発生します。

created: /path/to/files/temp/README.dmg
Traceback (most recent call last):
  File "datei.py", line 59, in <module>
    rename(workDir + filename + ".dmg", workDir + filename + ".datei")
FileNotFoundError: [Errno 2] No such file or directory: '/path/to/files/temp/README.dmg' -> '/path/to/files/temp/README.datei'

私が試したこと:

  • hidutilコマンドラインで自分自身を実行します。成功します!これは、問題が にあるのかどうか疑問に思いos.system()ます。
  • 実行中print(os.system("ls -al " + workDir))これは、他のものをチェックしてもファイルが存在しないことを示しています。whatever.dmgまた、他の場所には表示されませんが、名前の変更が成功したことがわかります。

助けていただければ幸いです、ありがとう。

4

1 に答える 1