回答:
m
文字列であると仮定すると、次のように使用できますendswith
。
if m.endswith('.mp3'):
...
elif m.endswith('.flac'):
...
大文字と小文字を区別せず、潜在的に大きなelse-ifチェーンを排除するには:
m.lower().endswith(('.png', '.jpg', '.jpeg'))
.split('.')[-1]
か?それとも、パーティションは本当に高い効率ですか?
os.path
パス/ファイル名を操作するための多くの関数を提供します。(ドキュメント)
os.path.splitext
パスを取得し、ファイル拡張子をその末尾から分割します。
import os
filepaths = ["/folder/soundfile.mp3", "folder1/folder/soundfile.flac"]
for fp in filepaths:
# Split the extension from the path and normalise it to lowercase.
ext = os.path.splitext(fp)[-1].lower()
# Now we can simply use == to check for equality, no need for wildcards.
if ext == ".mp3":
print fp, "is an mp3!"
elif ext == ".flac":
print fp, "is a flac file!"
else:
print fp, "is an unknown file format."
与える:
/folder/soundfile.mp3はmp3です! folder1 / folder / soundfile.flacはflacファイルです!
/.mp3
、mp3ファイルとは見なされません。ただし、これは先行スペースの扱い方です。例えば.gitignore
、ファイル形式ではありません
モジュールfnmatchを見てください。それはあなたがやろうとしていることをします。
import fnmatch
import os
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*.txt'):
print file
古いスレッドですが、将来の読者を助けるかもしれません...
私は考えないよう使用)(.lowerあなたのコードより多くのプラットフォームから独立を作成するよりも、他の理由であれば、ファイル名に。(linux は大文字と小文字を区別します。ファイル名の.lower()は確実に最終的にロジックを破壊します...またはさらに悪いことに、重要なファイルです!)
reを使用しないのはなぜですか?(さらに堅牢にするために、各ファイルのマジックファイルヘッダーを確認する必要があります... Pythonで拡張子のないファイルのタイプを確認する方法は?)
import re
def checkext(fname):
if re.search('\.mp3$',fname,flags=re.IGNORECASE):
return('mp3')
if re.search('\.flac$',fname,flags=re.IGNORECASE):
return('flac')
return('skip')
flist = ['myfile.mp3', 'myfile.MP3','myfile.mP3','myfile.mp4','myfile.flack','myfile.FLAC',
'myfile.Mov','myfile.fLaC']
for f in flist:
print "{} ==> {}".format(f,checkext(f))
出力:
myfile.mp3 ==> mp3
myfile.MP3 ==> mp3
myfile.mP3 ==> mp3
myfile.mp4 ==> skip
myfile.flack ==> skip
myfile.FLAC ==> flac
myfile.Mov ==> skip
myfile.fLaC ==> flac
if (file.split(".")[1] == "mp3"):
print "its mp3"
elif (file.split(".")[1] == "flac"):
print "its flac"
else:
print "not compat"
.
例えば、Sをsome.test.file.mp3
#!/usr/bin/python
import shutil, os
source = ['test_sound.flac','ts.mp3']
for files in source:
fileName,fileExtension = os.path.splitext(files)
if fileExtension==".flac" :
print 'This file is flac file %s' %files
elif fileExtension==".mp3":
print 'This file is mp3 file %s' %files
else:
print 'Format is not valid'
file='test.xlsx'
if file.endswith('.csv'):
print('file is CSV')
elif file.endswith('.xlsx'):
print('file is excel')
else:
print('none of them')