国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - linux中快速列出文件列表的多種方法總結

linux中快速列出文件列表的多種方法總結

2022-02-19 19:20魏守峰 Linux

這篇文章主要給大家總結介紹了關于linux中如何快速列出文件列表的多種方法,分別介紹了walk、os.scandir、tree、find以及locate等方法,文中給出了詳細的示例代碼,需要的朋友可以參考借鑒,下面來一起看看吧。

前言

最近在工作中碰到一個很棘手的問題,需要讀取出ubuntu系統中某個目錄下所有文件,由于服務器中存儲的文件實在太多,導致此過程效率十分低下,動輒需要等待一個小時之久,還只是一個目錄。于是如何快速獲取文件列表便是這兩天的頭等大事,折騰半天找到一個較為快速的方法,記錄如下,話不多說了,來一起看看詳細的介紹吧。

多種實現方法

嘗試了多種方法,有編程的和非編程的。

1、walk

python的walk庫能夠遞歸的讀取目錄下所有文件,這個是最常規的方法,然而效率有些緩慢。實現很簡單,不贅述。

2、os.scandir

python中的os.scandir方法官方解釋為快速讀取目錄,測試了一下速度相對walk而言是由提高,但是還是達不到要求,也需要自己寫遞歸,代碼如下:

?
1
2
3
4
5
6
7
8
9
10
def scan_path(file_path, level = 3):
 files = []
 if level >= 0:
  path = os.scandir(file_path)
  for p in path:
   if p.is_dir():
    files.extend(scan_path(p.path, level - 1))
   else:
    files.append(p.path)
 return files

當這兩種方法都行不通的時候我就開始考慮才用非編程方法了。理論上來說python的執行效率已經蠻高了,雖然可能達不到c或者c++的速度,但是相比java、C#來說已經夠快了,所以就沒有再考慮編程的方式,而是轉向linux系統原生的方式。

3、ls

最先想到的就是ls命令,使用如下命令

?
1
ls –l –R(或-lR) src > list.txt

此命令能夠列出src目錄下的所有文件,但是效率還是不夠高,而且結果包含了目錄信息以及文件信息,不太整齊,需要后續處理。

4、tree

tree命令本身用于列出文件系統的結構樹,在設置一些參數的情況下也能夠實現列出所有目錄和文件的功能。

?
1
tree -afi -L 3 -o 2.txt --noreport src

-a列出所有文件,-f列出完整路徑(結果為絕對路徑或者相對路徑與find用法一致),-i不畫tree的結構線, -L列出多少層目錄,-o輸出到文件,--noreport不要最后的summary。

5、find

find命令本身是查找文件的命令,但是如果使用得當,能夠快速列出目錄下文件,命令如下:

?
1
find src > 1.txt

此命令速度足夠快,基本能夠滿足需要了。find的結果相對當前src的路徑,也就是說其每條結果的開頭均是src,如果src為絕對路徑,則結果為絕對路徑,如果src為相對路徑,則結果以此相對路徑為開頭。

6、locate

又Google了一下,發現locate與find的功能相似,locate也能夠查找文件,于是猜想locate也能夠實現此功能,試之,果然可以,寫法都是一樣的。

?
1
locate src > 1.txt

不同點在于無論src為相對路徑還是絕對路徑,其結果均為絕對路徑。

使用time命令進行命令執行時間測試,發現find和locate時間基本相同,有時locate會稍微快一些,而tree命令則有些慢。

結論

以上均可取到文件夾下所有文件,使用walk和scandir最為方便與程序集成,但是速度稍微有些慢,find和locate命令速度較快,tree命令功能強大,但速度相對find和locate有些慢,此三者若要與python集成,則需要在程序中使用os.popen等管道機制來執行拼接的bash命令。所以以上命令各有所長,按照自己的需求取舍。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.jianshu.com/p/3a9c1800bce1

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久草中文在线 | 九九国产精品视频 | 欧美激情网址 | 一区二区精品视频 | 亚洲免费在线看 | 久久久在线 | 999国产在线观看 | 日韩亚洲一区二区 | 欧美日本在线观看 | 亚洲精品一二区 | 成人综合区一区 | 黄色一级网站 | 日韩午夜影院 | 男女做爰猛烈叫床无遮挡 | 2022天天操 | 日韩不卡一区二区 | 日韩高清一区二区 | 国产精品国产三级国产aⅴ中文 | 久久视频在线 | 国产精品国产三级国产aⅴ中文 | 欧美日韩一区二区在线 | 欧美日韩精品在线 | 综合久久99 | 国产成人精品一区二区三区视频 | 国产一级一级国产 | 在线观看欧美 | 网站黄色在线免费观看 | 欧美福利网址 | 亚洲综合影院 | 操操操av | 久久午夜综合久久 | 日韩在线免费电影 | 国产一区二区视频免费看 | 亚洲精品国产精品国自产在线 | 久久麻豆 | 狠狠久| 无毒黄网 | 欧美激情一区二区三级高清视频 | 福利片一区二区 | 国产精品亚洲第一区在线暖暖韩国 | 黄频免费在线观看 |