2

少し問題があり、なぜ私のプログラムがこのようなことをするのか理解できません。手伝って頂けますか?

多くの異なるファイルを含むディレクトリがあります。「.TXT」ファイル (はい、大文字) のリストが必要です。

私のコード:

def listFile():
    files = [f for f in os.listdir('.') if os.path.isfile(f)]
    for f in files:
        if (f[-4:] != ".TXT"):
            del files[files.index(f)]

しかし、リストに「.TXT」要素しかない理由がわかりません。

私のディレクトリの要素:

['OrdinaFile0.3.py', 'OrdinaFile0.4-p2.py', 'OrdinaFile0.4-p3.py', 'OrdinaFile0.5-p2.py', 'OrdinaFile0.6-p2.py', 'TxtToXls-p2.py', 'aula1.TXT', 'testFiles.py', 'testxlwt.py']

コードによって生成されたリスト:

['OrdinaFile0.3.py', 'OrdinaFile0.4-p2.py', 'OrdinaFile0.6-p2.py', 'aula1.TXT']

アイデアはありますか?ありがとう。

4

2 に答える 2

1

すべて理解した上で行います。.TXTこれにより、リストを繰り返し処理して、その拡張子を持つファイルを見つける必要がなくなります。さらに、これはもっとpythonicです。

files = [f for f in os.listdir('.') if os.path.isfile(f) and f.endswith('.TXT')]
于 2013-11-13T18:59:58.180 に答える