2017-08-02 13 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

は、これはあなたのインデントであるか、あなたは間違いコピーを作った@ inspectorG4dgetはコメントで指摘したように、それは特定の文字列(str.startswith)で始まる場合は、単にチェックすることができ? – jacoblaw

+1

もしf.startswith( "AMSR_E_L3_DailyLand_V06_201001") 'の代わりに' 012 'を試してみてください – inspectorG4dget

+0

私は間違いをコピーしました –

答えて

1

通常の比較では、Pythonはワイルドカードまたは*?のようなプレースホルダをサポートしていません。

if f.startswith("AMSR_E_L3_DailyLand_V06_201001"): 

の代わり:

if f == "AMSR_E_L3_DailyLand_V06_201001?": 
関連する問題