コミュニティを歩き回ると、フォルダー内の画像以外のファイルの削除やフォルダー内の画像の削除などの問題を解決するときに、多くの人がこの機能を実装するために多くのコードを書いていることがわかりました。混乱しています。数行のコードで解決できるのに、なぜこれほど多くのコードを記述する必要があるのでしょうか?
解決された問題は、フォルダー内の同じサフィックス タイプを持つファイルを削除することです。たとえば、フォルダー内のすべての JPG ファイルまたは PNG ファイルを削除します。
str.endswith(suffix[, start[, end]])
関数の使用法: openswith() メソッドは、文字列が指定されたサフィックスで終わるかどうかを判断するために使用されます。指定されたサフィックスで終わる場合は True を返し、それ以外の場合は False を返します。オプションのパラメータ「start」と「end」は、取得した文字列の開始位置と終了位置です。
suffix – このパラメータには文字列または要素を指定できます。
start – 文字列内の開始位置。
end – 終了位置 (文字単位)。
注: 戻り値は bool 型です
現在、TXT ファイル (拡張子 .txt) と CSV ファイル (csv) があります。および PNG ファイル (拡張子 .png) がある場合は、PNG ファイルを削除し、TXT ファイルと CSV ファイルのみを保持する必要があります。コードは次のとおりです:
import os file=os.listdir(r'C:\Users\ZFG\Desktop\test') for i in file: if i.endswith('.png'): os.remove(r'C:\Users\ZFG\Desktop\test/'+i)#i保存的只是文件夹中的一个相对路径,绝对路径还需要加上文件夹的路径+‘/'
最終結果が表示されます。最初の画像は削除前の画像、2 番目の画像は削除後の効果画像です:
##注: フォルダー内に削除する必要があるファイルが多数ある場合、これらの単純なコード行が驚くほどうまく機能することがあります。 添付ファイル: 次のコードは、指定されたディレクトリの jpg 画像を削除します# 删除文件夹下面的图片 #先导入所需的包 import os #指定路径 path = '/content/drive/My Drive' filenames = os.listdir(path) for filename in filenames: print(filename) #判断是否是文件而非文件夹 if(os.path.isfile(filename)): # print('it is a file') #判断文件后缀名是否是‘.jpg' if(os.path.splitext(filename)[1] == '.jpg'): #执行删除 os.remove(filename)
以上がPythonでフォルダー内の同じサフィックスタイプを持つファイルを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。