3

終わらせようとしている宿題がいくつかあります。答えは欲しくない。ただ起動に問題があります。私が試した作業はまったく機能していません...誰かが正しい方向にプッシュしてください。私は学ぼうとしていますが、試してみた後、助けが必要です。

os.path.basename()ベース名を取得してファイル名に追加できることは知っていますが、まとめることはできません。

課題はこちら

このプロジェクトでは、ディレクトリ パスを受け取り、ディレクトリのみのアーカイブを作成する関数を記述します。たとえば、例と同じパスが使用された場合("c:\\xxxx\\Archives\\archive_me")、zipfile にはarchive_me\\grouchoarchive_me\\harpoおよびが含まれますarchive_me\\chico

ベース ディレクトリ (archive_me上記の例) は入力の最後の要素であり、zip ファイルに記録されるすべてのパスはベース ディレクトリから開始する必要があります。

ディレクトリにサブディレクトリが含まれる場合、サブディレクトリ名とサブディレクトリ内のファイルは含めないでください。(ヒント: を使用isfile()して、ファイル名がディレクトリではなく通常のファイルを表しているかどうかを判別できます。)

ありがとうございました。

4

1 に答える 1

4

自分で何を試したかを知るのに役立つので、標準ライブラリのメソッドへのポインタをいくつか示します。

  • os.listdir特定のディレクトリの下にあるファイルとフォルダのリストを取得するには(フルパスではなく、ファイル/フォルダ名のみが返されることに注意してください)。

  • os.path.isfile割り当てで述べたように、特定のパスがファイルまたはフォルダーを表すかどうかを確認します

  • os.path.isdir、の反対( inspectorG4adgetos.path.isfileに感謝)

  • os.path.joinスラッシュや区切り文字を気にせずにファイル名をbasedirに結合する

  • ZipFileよく、zipファイルを処理するため

  • zipFile.write見つかったファイルをzipに書き込む

それらすべてが必要になるかどうかはわかりませんが、それらが存在することを知っていても問題はありません。

于 2012-11-22T03:48:53.920 に答える