2017-08-02 109 views
2

我有一个包含许多文件名称相似的文件夹。这是我的代码到目前为止。如何在某个文件夹内打印某些名称的文件

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

这是你的缩进还是你犯了一个错误复制? – jacoblaw

+1

尝试'如果f.startswith(“AMSR_E_L3_DailyLand_V06_201001”)'而不是 – inspectorG4dget

+0

我犯了一个错误复制 –

回答

1

Python在正常比较中不支持通配符或占位符,如*?。正如@ inspectorG4dget在评论中指出的,你可以只检查是否有特定的字符串(str.startswith)开始:代替

if f.startswith("AMSR_E_L3_DailyLand_V06_201001"): 

if f == "AMSR_E_L3_DailyLand_V06_201001?": 
相关问题