一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實現的棧、隊列、文件目錄遍歷操作示例

Python實現的棧、隊列、文件目錄遍歷操作示例

2021-06-23 23:581257309054 Python

這篇文章主要介紹了Python實現的棧、隊列、文件目錄遍歷操作,結合實例形式分析了Python數據結構中棧與隊列的定義、使用,以及文件目錄的遍歷相關操作技巧,需要的朋友可以參考下

本文實例講述了python實現的棧、隊列、文件目錄遍歷操作。分享給大家供大家參考,具體如下:

一、 棧與隊列

1、 棧 stack

特點:先進先出[可以抽象成竹筒中的豆子,先進去的后出來] 后來者居上

?
1
2
3
4
5
6
7
8
9
10
11
12
13
mystack = []
#壓棧[向棧中存數據]
mystack.append(1)
print(mystack)
mystack.append(2)
print(mystack)
mystack.append(3)
print(mystack)
#出棧[從棧中取數據]
mystack.pop()
print(mystack)
mystack.pop()
print(mystack)

2、 隊列 queue

特點: 先進先出[可以抽象成一個平放的水管]

?
1
2
3
4
5
6
7
8
9
10
11
12
#導入數據結構的集合
import collections
queue = collections.deque([1, 2, 3, 4, 5])
print(queue)
#入隊[存數據]
queue.append(8)
print(queue)
queue.append(9)
print(queue)
#取數據
print(queue.popleft())
print(queue)

二、 目錄遍歷

1、 遞歸遍歷目錄

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import os
def diguigetalldir(path,suojin):
  # 如果文件夾中只有文件則返回
  if os.path.isfile(path):
    return
  # 如果為空文件夾則返回
  list1 = os.listdir(path)
  if len(list1) == 0:
    return
  # 遍歷list1列表
  for item in list1:
    print(' '*suojin,'%s'%item)
    path1 = os.path.join(path,item)
    if os.path.isdir(path1):
      diguigetalldir(path1, suojin + 4)
# 遍歷當前目錄
diguigetalldir(os.getcwd(),0)

2、 棧模擬遞歸遍歷目錄

也稱為深度遍歷

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import os
def stackgetalldir(path):
  if not os.listdir(path):
    return
  liststack = [path]
  listsuojin = [0]
  print(liststack)
  while len(liststack) != 0:
    path = liststack.pop() #路徑出棧
    suojin = listsuojin.pop()  #縮進空格個數出棧
    print(' ' * suojin, os.path.basename(path))
    if os.path.isdir(path):
      for i in os.listdir(path): #遍歷路徑下的全部文件
        listsuojin.append(suojin +4)
        liststack.append(os.path.join(path,i)) #文件名拼接成相對路徑后入棧
# 遍歷當前目錄
stackgetalldir(os.getcwd())

3、 隊列模擬遞歸遍歷目錄

也被稱為廣度遍歷

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import os
import collections
def queuegetalldir(path=" "):
  if not os.listdir(path):
    return
  queue = collections.deque()
  queue.append(path)
  while len(queue) != 0:
    filepath = queue.popleft()
    filelist = os.listdir(filepath) #遍歷filepath路徑下的目錄
    for filename in filelist:
      absfilepath = os.path.join(filepath,filename) #路徑拼接
      if os.path.isdir(absfilepath):
        print("目錄:",filename)
        queue.append(absfilepath)
      else:
        print("文件:",filename)
# 遍歷當前目錄
queuegetalldir(os.getcwd())

希望本文所述對大家python程序設計有所幫助。

原文鏈接:https://blog.csdn.net/lm_is_dc/article/details/80081904

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩视频一区三区二区 | 无套大战白嫩乌克兰美女 | 91混血大战上海双胞胎 | 九九成人免费视频 | 亚洲精品免费视频 | 国产精品理论片 | 久久99re2在线视频精品 | 日本免费一二区 | 亚洲天天做夜夜做天天欢 | 国产91精品久久久久久 | 国产精品密播放国产免费看 | 成人福利免费视频 | 香蕉视频在线观看网站 | 黑人巨 | 国产精选之刘婷野战 | 教室里的激情电影 | 99这里只有精品视频 | 美女被躁了在线观看视频 | 热伊人99re久久精品最新地 | 女人叉开腿让男人桶 | 免费福利资源站在线视频 | 日本高清在线精品一区二区三区 | 亚洲黄色小视频 | 国内会所按摩推拿国产 | 青草视频在线观看免费视频 | 四虎永久免费在线观看 | 久9青青cao精品视频在线 | 午夜网| 国产日本欧美亚洲精品视 | 女同志freelesvoices | 我把寡妇日出水好爽 | 国产欧美精品一区二区三区四区 | 8x8x拔插| a黄毛片 | 秋霞啪啪片 | 叛佛 作者满栀小说免费阅读 | 久久精品WWW人人爽人人 | 91免费在线| 扒开腚眼子视频大全 | 久久精品无码一区二区日韩av | 国产综合成人久久大片91 |