检查os.path.isfile(文件名)在Python中区分大小写

我需要检查给定的文件是否存在或不区分大小写。

file = "C:\Temp\test.txt" if os.path.isfile(file): print "exist..." else: print "not found..." 

TEST.TXT文件出现在C:\ Temp文件夹下。 但是显示文件“C:\ Temp \ test.txt”的“file exists”输出的脚本,应该显示“not found”。

谢谢。

Solutions Collecting From Web of "检查os.path.isfile(文件名)在Python中区分大小写"

列出目录中的所有名称,以便您可以执行区分大小写的匹配:

 def isfile_casesensitive(path): if not os.path.isfile(path): return False # exit early directory, filename = os.path.split(path) return filename in os.listdir(directory) if isfile_casesensitive(file): print "exist..." else: print "not found..." 

演示:

 >>> import os >>> file = os.path.join(os.environ('TMP'), 'test.txt') >>> open(file, 'w') # touch <open file 'C:\\...\\test.txt', mode 'w' at 0x00000000021951E0> >>> os.path.isfile(path) True >>> os.path.isfile(path.upper()) True >>> def isfile_casesensitive(path): ... if not os.path.isfile(path): return False # exit early ... directory, filename = os.path.split(path) ... return any(f == filename for f in os.listdir(directory)) ... >>> isfile_casesensitive(path) True >>> isfile_casesensitive(path.upper()) False 

os.path.isfile在python 2.7中不区分大小写

 >>> os.path.isfile('C:\Temp\test.txt') True >>> os.path.isfile('C:\Temp\Test.txt') True >>> os.path.isfile('C:\Temp\TEST.txt') True