os.listdir 打印的文件比命令 `ls` 多但少于 `ls -a`

我想计算路径中的命令 /Users/me/anaconda3/bin


In [3]: len(os.listdir("/Users/me/anaconda3/bin"))                                                            

Out[3]: 474

但是,当我检查命令时


In [5]: !count=0; for f in $(ls /Users/me/anaconda3/bin) ;do count=$(( $count + 1)); done; echo $count        

470

但是,如果检查所有文件:


In [17]: ls -a /Users/me/anaconda3/bin | wc -l                                                                

476

造成差异的原因是什么?


沧海一幻觉
浏览 169回答 1
1回答

慕标琳琳

如果您阅读os.listdir的文档,这很容易返回一个包含路径给定目录中条目名称的列表。该列表按任意顺序排列,不包括特殊条目“.”。和 '..' 即使它们存在于目录中。这意味着 os.listdir 命令始终具有no_of_elements_in(`ls -a`)-no_of_elements_in(".. and  .")那是len('os.listdir') =no_of_elements_in(`ls -a`)-2在你的情况下 474=476-2
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python