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

时间:2017-08-14 00:42:38

标签: python macos python-3.x file

我的书指出:

  

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

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

我的根文件夹有5个文件,包括应用程序,库,用户等,但os.listdir('/')为我提供了大约20-25个列表项的列表,其中一些是应用程序,库,用户, .DS_Store < / strong>, Trashes .dbfseventsd .Spotlight-V100 等。请注意,粗体文本列表项似乎没有出现在我手动打开它时的根文件夹。

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

1 个答案:

答案 0 :(得分:5)

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

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

files = [x for x in os.listdir('/') if not f.startswith('.')]

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

  1. 打开Finder

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

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

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