![](/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.