簡體   English   中英

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

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM