2

xyz.0.htmlコンソールにファイル名''を出力しようとしています。エラーを吐き出している"substring not found"

ディレクトリ内のファイル:

xyz.0.html
xyz.1.html
xyz.2.html

Python

for name in glob.glob('*html'):
  if name.index('.0.html'):
    print name
4

5 に答える 5

5

使ってみませんstr.endswith()か?

>>> "xyz.0.html".endswith(".0.html")
True
于 2012-07-12T18:06:21.183 に答える
2

試す

if ".0.html" in name: 
   print name

また

if name.endswith(".0.html"):
      print name
于 2012-07-12T18:06:12.433 に答える
2

あなたはおそらくしたい

if '.0.html' in name:

または、

if name.endswith('.0.html'):

メソッドがサブストリングが見つかったストリングのインデックスを返すため(または例外を発生させるためFalse)、サブストリングがストリング内にない場合(および、サブストリングがストリングの先頭にあるかどうかを評価します)、バージョンはエラーを発生させます。indexサブストリングが見つからなかった場合)。

于 2012-07-12T18:06:17.533 に答える
2

エラーはまさにそれが言っていることです。name.index('0.html')名前を呼び出すと"xyz.1.html"、文字列が見つかりません。 indexこの場合、エラーが発生します。これが不要な場合は、代わりにメソッドを使用するfindか(サブ文字列が見つからない場合は-1を返します)、例外をキャッチできます。

于 2012-07-12T18:06:50.000 に答える
0

Pythonのジェネレーターを使用できます

print [name for name in glob.glob('*html') if name.endswith(".0.html")]
于 2012-07-12T18:13:56.607 に答える