2017-12-07 18 views
0
import os, re 
fileregex = re.compile(r"b(\D)+v.txt") 
os.chdir("F:\\") 
for file in os.listdir("."): 
    mo = fileregex.search(file) 
    print(mo.group()) 

「NonType」というエラーが表示され続けます。私は、文字 'b'から始まり、 'c'で終わるファイルを探したいだけです。ファイル名は:brgv.txtで、 "Local Dish:F"にあります。特定のディレクトリにあるファイル名を見つける

私は間違っていますか?

+1

質問にいくつかのタイプミスがあったため、ファイルが実際に "b"で始まり、 "v"または "c"で終わることを明確にする必要があると思いますか? – YiFei

+0

正規表現です。ローカルディスク "F"にファイル名brgv.txtがあります。そのファイルに1文字の「b」と最後の文字「v」を入力してそのファイルを探したいとします。真ん中にはクラスがあります。私は 'for'ループを使用しているので、ディレクトリ内の文字 'b'から始まり、文字 'v'で終わるすべてのファイルを取ります。私は見つけることができますが、それは私に "Nonetype"ファイルのエラーを与え続けます。 –

+0

'search'は何をするのですか?それは何を返しますか?ヘルプは[こちら](https://docs.python.org/3/library/re.html#re.search)をご覧ください。時にはNoneを返す(つまり一致しない)。文字通り文字列を「検索」するので、最初はbでなくてもかまいません。 – YiFei

答えて

0

この場合、regexを使う必要はありません。 str.endswithで十分です。

関連する問題