文件可以有多個擴展名,但文件的名稱將保持不變。 我試圖如何檢查文件是否存在,而無需在Python中查看其擴展名?
import os.path
os.path.isfile("Filename")
但是這個代碼是看文件也延長。
文件可以有多個擴展名,但文件的名稱將保持不變。 我試圖如何檢查文件是否存在,而無需在Python中查看其擴展名?
import os.path
os.path.isfile("Filename")
但是這個代碼是看文件也延長。
這將列出具有相同名稱但不同的擴展名的所有文件。
import glob
print glob.glob("E:\\Logs\\Filename.*")
您可以改用此檢查。
import glob
if glob.glob("E:\\Logs\\Filename.*"):
print "Found"
請參閱this的帖子。
這將得到所有你想要的基本名(在這種情況下,「TMP」),帶或不帶擴展名的文件,將排除的東西,你的基本名稱開始 - 就像tmp_tmp.txt例如:
import re
import os
basename='tmp'
for filename in os.listdir('.'):
if re.match(basename+"(\..*)?$", filename):
print("this file: %s matches my basename"%filename)
或者當然,如果你喜歡它們在列表中,更簡潔的:
[fn for fn in os.listdir('.') if re.match(basename+"(\..*)?$",fn)]
試試這個。
import os
def check_file(dir, prefix):
for s in os.listdir(dir):
if os.path.splitext(s)[0] == prefix and os.path.isfile(os.path.join(dir, s)):
return True
return False
你可以調用這個函數等,例如,check_file("/path/to/dir", "my_file")
搜索表單/path/to/dir/my_file.*
的文件。
您可以使用fnmatch
也
import os
import fnmatch
print filter(lambda f: fnmatch.fnmatch(f, "Filename.*"), os.listdir(FilePath))
在這裏,無需格式化FilePath
。您可以簡單地寫入'C:\Python27\python.*
'
導入glob glob.glob('Filename。*') – Leon