ホームページ  >  記事  >  バックエンド開発  >  パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

PHPz
PHPz転載
2023-04-12 16:19:141812ブラウズ

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

下図に示すように、ローカル フォルダーに大量のビデオ ファイルが存在しますが、この場合、順序は崩れていません。

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

#しかし、ネットワークディスクにアップロードした後、頻繁に調子が悪くなることがあります。つまり、1、10、11、2、20 に従ってソートされるため、順番に見るのは不便です。

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

したがって、ローカルで名前を変更できるようにしたいと考えています。たとえば、001、002、003...、020 に従って並べ替えることができます。上記のような恥ずかしい状況。

Python では、os モジュールを使用して、コピー、移動、名前変更、削除などのさまざまなファイルやディレクトリを自動的に処理できます。

ファイル リストを取得します

対話型環境で次のコマンドを入力します:

import os
path =os.getcwd()
filenames = os.listdir(path)
filenames

出力:

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

os module の getcwd() 関数を使用すると、現在の作業ディレクトリを取得できます。 os モジュールの listdir() 関数は、作業ディレクトリ内のすべてのファイルとサブディレクトリを返すことができます。これら 2 つの関数を通じて、現在の作業ディレクトリ内のすべてのファイルを取得します。

ビデオ ファイルのフィルタリング

対話型環境で次のコマンドを入力します:

file_mp4s = [i for i in filenames if i.split(".")[-1] == "mp4"]
file_mp4s

出力:

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

このステップファイルリスト内のすべての mp4 ファイルをフィルタリングするために使用されます。ループ条件を使うのは面倒ですが、リスト生成なら1行の記述で動画ファイルを取得できます。

名前の一括変更

対話型環境で次のコマンドを入力します:

for i in file_mp4s:
 new_name = i.split("-")[0].zfill(3) + "-" + i.split("-")[1]
 os.rename(i,new_name)

出力:

パイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。

os モジュールの rename() 関数を使用すると、ファイルの名前を変更できます。

ここでは文字列関数 zfill() も使用されており、指定された長さの文字列が返されます。元の文字列は右揃えで先頭に 0 が埋め込まれます。したがって、「1」.zfill(3) は「001」を返します。

このようにして、順序が狂っているファイルの名前変更と番号付けを実現しました。今日の共有がお役に立てば幸いです~

以上がパイソンマジックオペレーション!ファイル名変更番号の順序が狂っています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。