簡體   English   中英

哪個命令更好:os.listdir() 或 os.system('ls') 以及為什么?

[英]which command is better: os.listdir() or os.system('ls') and WHY?

在當前工作目錄中:

import os
print( os.listdir() )

將列出文件和目錄。 但是,我也可以使用system命令獲取 Linux 機器當前工作目錄中的文件和目錄列表:

import os
print( os.system('ls') )

哪個命令更好: os.listdir()os.system('ls') ,為什么?

os.listdir()是在 python 中本地實現的,並且可以在任何編譯 python 的操作系統上運行。

調用os.system('ls')依賴於底層操作系統有一個ls命令,這是一個瘋狂的假設(例如,windows 怎么樣?),並且需要這個可執行文件在$PATH 從性能的角度來看,您將執行另一個完全多余的進程。 如果你想做任何比打印結果更有趣的事情,你將不得不自己解析輸出。

長話短說 - 不要重新發明輪子。 如果 python 給你一個內置的os.listdir() ,就使用它。

我可能在這里挖墳,但我最近遇到了類似的用法。

我試圖ls一個/path/to/temp文件。 它不起作用,在我關閉它之前ls命令會卡住並且沒有響應超過 5 分鍾。 注意這是通過膩子通過 SSH,我試過ls -l | wc -l ls -l | wc -l ,這也不起作用。

len(os.listdir("path/to/temp"))立即返回一個數字,大約是75000 ,該列表幾乎立即構建。 因此,如果您在具有大量后代的目錄上使用os.listdir()與 ls ,則有明顯的速度優勢。

只是為了堆積: ls對您嘗試使用它的目錄中的文件數量有一個開銷限制。 os.listdir()沒有這樣的限制。 如果你可以使用它,那么os.listdir()似乎是更好的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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