답변:
m
문자열 이라고 가정하면 다음을 사용할 수 있습니다 endswith
.
if m.endswith('.mp3'):
...
elif m.endswith('.flac'):
...
대소 문자를 구분하지 않고 잠재적으로 큰 else-if 체인을 제거하려면 다음을 수행하십시오.
m.lower().endswith(('.png', '.jpg', '.jpeg'))
.split('.')[-1]
않습니까? 아니면 rpartition이 정말 높은 효율입니까?
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
파일 형식이 아님
오래된 글이지만 미래 독자들을 도울 수 있습니다 ...
나는 것이다 않도록 사용 ) (.lower 코드 더 플랫폼 독립을하는 것보다 다른 이유가있는 경우 파일 이름에. (리눅스 는 대소 문자를 구분 합니다. 파일 이름의 .lower () 는 결국 논리를 손상시킬 것입니다 ... 또는 더 중요한 것은 중요한 파일입니다!)
왜 re를 사용하지 않습니까? (보다 강력하지만 각 파일의 매직 파일 헤더를 확인해야합니다 ... 파이썬에서 확장자가없는 파일 유형을 확인하는 방법은 무엇입니까? )
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"
.
예를 들어 여러 개의 파일이 포함 된 파일에는 작동하지 않습니다.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')