我想计算路径/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
造成差异的原因是什么?
答案 0 :(得分: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