ファイルには複数の拡張子を付けることができますが、ファイルの名前は変わりません。 私は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
フォーム/path/to/dir/my_file.*
のファイルを検索するために、例えば、check_file("/path/to/dir", "my_file")
、のように、この関数を呼び出すことができます。
あなたも、FilePath
をフォーマットする必要はありませを
import os
import fnmatch
print filter(lambda f: fnmatch.fnmatch(f, "Filename.*"), os.listdir(FilePath))
をfnmatch
を使用することはできません。 'C:\Python27\python.*
'のように書くことができます
インポートグロブ glob.glob( 'Filename。*') – Leon