我有一个包含许多名称相似的文件的文件夹。到目前为止,这是我的代码。
directory = r"C:\Users\matth\Downloads\AMSRE"
for root, dirs, filenames in os.walk(directory):
for f in filenames:
if f == "AMSR_E_L3_DailyLand_V06_201001?":
log = open(os.path.join(root, f), 'r')
file_name = (("C:\\Users\\matth\\Downloads\\AMSRE\\") + f)
print(file_name)
然而,什么都没有打印。我使用了这一行if f == "AMSR_E_L3_DailyLand_V06_201001?":
,因为我有许多名称相似的文件:
AMSR_E_L3_DailyLand_V06_20100101.hdf
,AMSR_E_L3_DailyLand_V06_20100102.hdf
,AMSR_E_L3_DailyLand_V06_20100103.hdf
,我不完全确定我是否正确使用问号。有谁知道什么是错的?
答案 0 :(得分:1)
Python在正常比较中不支持通配符或*
或?
等占位符。正如@ inspectorG4dget在评论中指出的那样,您可以检查它是否以特定字符串(str.startswith
)开头:
if f.startswith("AMSR_E_L3_DailyLand_V06_201001"):
而不是:
if f == "AMSR_E_L3_DailyLand_V06_201001?":