![](/img/trans.png)
[英]which command is better: os.listdir() or os.system('ls') and WHY?
[英]os.listdir print more files than command `ls` but less than `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
造成差异的原因是什么?
如果您阅读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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.