如何在不查看Python中的扩展名的情况下检查文件是否存在?

时间:2017-02-10 06:29:14

标签: python

文件可以有多个扩展名,但文件名仍然相同。 我试过了

import os.path
os.path.isfile("Filename")

但是这段代码也在查看文件的扩展名。

4 个答案:

答案 0 :(得分:7)

这将列出具有相同名称但扩展名不同的所有文件。

num[1] = 25;

您可以使用此检查。

boolean isDouble;
if(num[1].contains(".")){
isDouble = true;
}
else{
isDouble = false;
}

参考this帖子。

答案 1 :(得分:2)

试试这个。

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.*形式的文件。

答案 2 :(得分:1)

您也可以使用fnmatch

import os
import fnmatch

print filter(lambda f: fnmatch.fnmatch(f, "Filename.*"), os.listdir(FilePath))

此处,无需格式化FilePath。您可以简单地写出' C:\Python27\python.*'

答案 3 :(得分:0)

这将获得所有具有所需基本名称的文件(在本例中为&#39; tmp&#39;),有或没有扩展名,并将排除以您的基本名称开头的内容 - 例如tmp_tmp.txt:< / p>

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)]