欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年05月06日 11:52:58   作者:微信1257309054  
這篇文章主要介紹了Python實現的棧、隊列、文件目錄遍歷操作,結合實例形式分析了Python數據結構中棧與隊列的定義、使用,以及文件目錄的遍歷相關操作技巧,需要的朋友可以參考下

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

一、 棧與隊列

1、 棧 stack

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

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

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

#導入數據結構的集合
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、 遞歸遍歷目錄

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、 棧模擬遞歸遍歷目錄

也稱為深度遍歷

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、 隊列模擬遞歸遍歷目錄

也被稱為廣度遍歷

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相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程

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

相關文章

  • Python進程間通信用法實例

    Python進程間通信用法實例

    這篇文章主要介紹了Python進程間通信用法,涉及Python通過multiprocessing模塊操作進程的相關技巧,需要的朋友可以參考下
    2015-06-06
  • python變量賦值方法(可變與不可變)

    python變量賦值方法(可變與不可變)

    今天小編就為大家分享一篇python變量賦值方法(可變與不可變),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python graphlib庫輕松創(chuàng)建操作分析圖形對象

    Python graphlib庫輕松創(chuàng)建操作分析圖形對象

    Python中的graphlib庫是一個功能強大且易于使用的工具,graphlib提供了許多功能,可以幫助您創(chuàng)建、操作和分析圖形對象,本文將介紹graphlib庫的主要用法,并提供一些示例代碼和輸出來幫助您入門
    2024-01-01
  • Python中利用原始套接字進行網絡編程的示例

    Python中利用原始套接字進行網絡編程的示例

    這篇文章主要介紹了Python中利用原始套接字進行網絡編程的示例,使用sock_raw接受和發(fā)送數據包可以避開網絡協議的諸多限制,需要的朋友可以參考下
    2015-05-05
  • 利用python 更新ssh 遠程代碼 操作遠程服務器的實現代碼

    利用python 更新ssh 遠程代碼 操作遠程服務器的實現代碼

    這篇文章主要介紹了利用python 更新ssh 遠程代碼 操作遠程服務器的實現代碼,需要的朋友可以參考下
    2018-02-02
  • python 讀取修改pcap包的例子

    python 讀取修改pcap包的例子

    今天小編就為大家分享一篇python 讀取修改pcap包的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python操作Redis數據庫的詳細教程與應用實戰(zhàn)

    Python操作Redis數據庫的詳細教程與應用實戰(zhàn)

    Redis是一個高性能的鍵值存儲數據庫,支持多種類型的數據結構,如字符串、哈希表、列表、集合和有序集合等,在Python中,通過redis-py庫可以方便地操作Redis數據庫,本文將詳細介紹如何在Python代碼中操作Redis,需要的朋友可以參考下
    2024-08-08
  • Python開發(fā)必知必會標識符UUID全面使用指南

    Python開發(fā)必知必會標識符UUID全面使用指南

    在Python編程中,UUID(通用唯一標識符)是一個非常有用的工具,用于生成唯一的標識符,本文將深入探討Python中UUID的用法、不同版本的UUID、以及如何在實際應用中充分利用UUID的優(yōu)勢
    2023-12-12
  • 如何在Python中使用pyecharts圖形畫可視化大屏

    如何在Python中使用pyecharts圖形畫可視化大屏

    最近碰巧需要用到pyecharts,pyecharts庫是一個用于生成echarts圖表的類庫,這篇文章主要給大家介紹了關于如何在Python中使用pyecharts圖形畫可視化大屏的相關資料,需要的朋友可以參考下
    2024-05-05
  • Python 文本文件內容批量抽取實例

    Python 文本文件內容批量抽取實例

    今天小編就為大家分享一篇Python 文本文件內容批量抽取實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評論