os.listdir()给出了比预期更大的列表

M.H*_*mel 1 python macos file python-3.x

我的书指出:

调用os.listdir(path)将返回path参数中每个文件的文件名字符串列表.

我试图将文件放在一个放在桌面上的文件夹中,它工作得很好.然后我试图获取根文件夹'/'中的文件,它给出了奇怪的结果.

我的根文件夹中有5个文件,其中包括应用程序,库,用户等,但os.listdir('/')给我的一些20-25列表项其中一些应用,图书馆,用户,列表.DS_Store,删除次数,.dbfseventsd,.Spotlight-V100等.请注意,手动打开时,粗体文本列表项似乎不会出现在根文件夹中.

为什么会发生这种情况,我该怎么办?

cs9*_*s95 5

您的根文件夹包含隐藏的目录或文件.这些以a开头,.默认情况下在Finder中看不到ls.但是,os.listdir也要返回它们.

如果要忽略这些文件,可以使用:

files = [x for x in os.listdir('/') if not f.startswith('.')]
Run Code Online (Sandbox Code Playgroud)

另外,了解如何在OSX上查看这些隐藏文件很有用.要查看它们Finder:

  1. 打开 Finder

  2. 转到Macintosh HD文件夹(从左栏中的设备访问)

  3. 按住CMD-Shift-.(点)

要在终端中查看它们,请运行ls -a /path/to/dir.