获取Windows目录中的每个文件

时间:2011-04-12 00:59:21

标签: python windows directory

我在Windows 7中有一个包含多个.txt文件的文件夹。如何将所述目录中的每个文件作为列表获取?

5 个答案:

答案 0 :(得分:16)

您可以使用os.listdir(".")列出当前目录(“。”)的内容:

for name in os.listdir("."):
    if name.endswith(".txt"):
        print(name)

如果您希望将整个列表作为Python列表,请使用列表理解

a = [name for name in os.listdir(".") if name.endswith(".txt")]

答案 1 :(得分:7)

import os
import glob

os.chdir('c:/mydir')
files = glob.glob('*.txt')

答案 2 :(得分:2)

import fnmatch
import os

return [file for file in os.listdir('.') if fnmatch.fnmatch(file, '*.txt')]

答案 3 :(得分:2)

此处的所有答案都无法解决以下事实:如果您通过glob.glob()的Windows路径(例如C:\what\okay\i_guess\),它将无法按预期运行。相反,您需要使用pathlib

from pathlib import Path

glob_path = Path((r"C:\what\okay\i_guess")
file_list = [str(pp) for pp in glob_path.glob("**/*.txt")]

答案 4 :(得分:0)

如果您只需要当前目录,请使用os.listdir。

>>> os.listdir('.') # get the files/directories
>>> [os.path.abspath(x) for x in os.listdir('.')] # gets the absolute paths
>>> [x for x in os.listdir('.') if os.path.isfile(x)] # only files
>>> [x for x in os.listdir('.') if x.endswith('.txt')] # files ending in .txt only

如果需要递归获取目录的内容,也可以使用os.walk。请参阅os.walk.

的python文档