国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Python用os.walk遍歷目錄

2019-11-14 17:30:10
字體:
供稿:網(wǎng)友

今天第一次進(jìn)行 文件遍歷,自己遞歸寫的時(shí)候還調(diào)試了好久,(主要因?yàn)榉指舴?hào)的問題),后來發(fā)現(xiàn)了os.walk方法,就忍不住和大家分享下.

 

先看下代碼:

 


import os

for i in os.walk('c:'+os.sep+'ant'):
    PRint i[1] 

 

 

下面是輸出:

c:/ant
c:/ant/bin
c:/ant/docs
c:/ant/docs/ant2
c:/ant/docs/antlibs
c:/ant/docs/antlibs/antunit
c:/ant/docs/antlibs/compress
c:/ant/docs/antlibs/dotnet
c:/ant/docs/antlibs/props
c:/ant/docs/antlibs/svn
c:/ant/docs/images
c:/ant/docs/manual
c:/ant/docs/manual/api
c:/ant/docs/manual/api/org
c:/ant/docs/manual/api/org/apache
c:/ant/docs/manual/api/org/apache/tools
c:/ant/docs/manual/api/org/apache/tools/ant
c:/ant/docs/manual/api/org/apache/tools/ant/dispatch
c:/ant/docs/manual/api/org/apache/tools/ant/filters

 

后面還有很長(zhǎng).

如果不使用這個(gè)方法,遍歷同樣能達(dá)到效果.不過使用 os.walk 方便很多了.這個(gè)方法返回的是一個(gè)三元tupple(dirpath, dirnames, filenames),

其中第一個(gè)為起始路徑,

第二個(gè)為起始路徑下的文件夾,

第三個(gè)是起始路徑下的文件.
dirpath是一個(gè)string,代表目錄的路徑,

dirnames是一個(gè)list,包含了dirpath下所有子目錄的名字,

filenames是一個(gè)list,包含了非目錄文件的名字.這些名字不包含路徑信息,如果需要得到全路徑,需要使用 os.path.join(dirpath, name).

 

 

下面是可以看到 os.walk 方法返回的內(nèi)容.

 

代碼:

 

import os

for i in os.walk('c:'+os.sep+'ant'):
    print i
    
輸出:

('c://ant', ['bin', 'docs', 'etc', 'lib', 'Project'], ['fetch.xml', 'get-m2.xml', 'INSTALL', 'KEYS', 'LICENSE', 'NOTICE', 'README', 'WHATSNEW'])
('c://ant//bin', [], ['ant', 'ant.bat', 'ant.cmd', 'antenv.cmd', 'antRun', 'antRun.bat', 'antRun.pl', 'complete-ant-cmd.pl', 'envset.cmd', 'lcp.bat', 'runant.pl', 'runant.py', 'runrc.cmd'])
('c://ant//docs', ['ant2', 'antlibs', 'images', 'manual', 'projects', 'slides', 'webtest'], ['antnews.html', 'ant_in_anger.html', 'ant_task_guidelines.html', 'appendix_e.pdf', 'breadcrumbs.js', 'bugs.html', 'bylaws.html', 'contributors.html', 'external.html', 'faq.html', 'favicon.ico', 'index.html', 'legal.html', 'LICENSE', 'license.html', 'mail.html', 'mission.html', 'nightlies.html', 'page.CSS', 'problems.html', 'projects.html', 'resources.html', 'svn.html'])
('c://ant//docs//ant2', [], ['actionlist.html', 'features.html', 'FunctionalRequirements.html', 'original-specification.html', 'requested-features.html', 'requested-features.txt', 'VFS.txt'])
('c://ant//docs//antlibs', ['antunit', 'compress', 'dotnet', 'props', 'svn'], ['bindownload.cgi', 'bindownload.html', 'charter.html', 'index.html', 'proper.html', 'sandbox.html', 'srcdownload.cgi', 'srcdownload.html'])
('c://ant//docs//antlibs//antunit', [], ['index.html'])
('c://ant//docs//antlibs//compress', [], ['index.html'])
('c://ant//docs//antlibs//dotnet', [], ['index.html'])
('c://ant//docs//antlibs//props', [], ['index.html'])

...

 

當(dāng)然后面還有很長(zhǎng)了.

 

有了這個(gè)函數(shù)無論是遍歷文件夾,還是遍歷文件都很方便.

 

 

下面是我是自己用遞歸實(shí)現(xiàn)的遍歷文件方法.

代碼:

def listdir(leval,path):
    for i in os.listdir(path):
        print('|  '*(leval + 1) + i) 
        if os.path.isdir(path+i):
            listdir(leval+1, path+i)

path = 'c:'+os.sep+'ant'

#或者直接 path='C:/ant' 
print(path+os.sep)
listdir(0, path+os.sep)

 

下面是輸出:

c:/ant/
|  bin
|  |  ant
|  |  ant.bat
|  |  ant.cmd
|  |  antenv.cmd
|  |  antRun
|  |  antRun.bat
|  |  antRun.pl
|  |  complete-ant-cmd.pl
|  |  envset.cmd
|  |  lcp.bat
|  |  runant.pl
|  |  runant.py
|  |  runrc.cmd
|  docs
|  |  ant2
|  |  antlibs
|  |  antnews.html
|  |  ant_in_anger.html
|  |  ant_task_guidelines.html
|  |  appendix_e.pdf
|  |  breadcrumbs.js
|  |  bugs.html
|  |  bylaws.html
|  |  contributors.html
|  |  external.html
|  |  faq.html
|  |  favicon.ico
|  |  images
|  |  index.html
|  |  legal.html
|  |  LICENSE
|  |  license.html
|  |  mail.html
|  |  manual
|  |  mission.html
|  |  nightlies.html
|  |  page.css
|  |  problems.html
|  |  projects
|  |  projects.html
|  |  resources.html
|  |  slides
|  |  svn.html
|  |  webtest
|  etc
|  |  ant-bootstrap.jar
|  |  changelog.xsl
|  |  checkstyle
|  |  coverage-frames.xsl
|  |  jdepend-frames.xsl
|  |  jdepend.xsl
|  |  junit-frames-xalan1.xsl
|  |  junit-frames.xsl
|  |  junit-noframes.xsl
|  |  log.xsl
|  |  maudit-frames.xsl
|  |  mmetrics-frames.xsl
|  |  tagdiff.xsl
|  fetch.xml
|  get-m2.xml
|  INSTALL
|  KEYS
|  lib
|  |  ant-1.8.0.pom
|  |  ant-1.8.0.pom.md5
|  |  ant-1.8.0.pom.sha1
|  |  ant-1.8.0.pom.sha512

..

 

如果只想得到文件夾,而不要文件,把要做的事情放到

if os.path.isdir(path+i):

里面就好了,比如: print()

 

O(∩_∩)O~


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 上思县| 高安市| 普宁市| 成安县| 蚌埠市| 新民市| 朔州市| 溧阳市| 京山县| 包头市| 永平县| 西华县| 佛坪县| 青浦区| 上杭县| 陆川县| 临湘市| 济阳县| 华容县| 崇义县| 金坛市| 永济市| 武清区| 革吉县| 宜都市| 龙井市| 九台市| 湖南省| 临夏市| 集贤县| 南充市| 临朐县| 吕梁市| 福安市| 泰州市| 定西市| 宜章县| 靖江市| 鹰潭市| 平凉市| 上饶市|