python 檔案遍歷

2021-06-20 00:51:05 字數 2029 閱讀 1870

1.使用os.listdir(dir)得到一定list包含了目錄下所有的檔案和資料夾

os.path.join(dir,filename)獲得檔案的全路徑

os.path.isdir(filepath)判斷是不是乙個dir

import os,sys

import re

def deal_log(log_name,dict):

f=open(log_name)

lines=f.readline()

while lines:

a=lines.split(" ")

if a[0] in dict:

dict[a[0]]+=1

else:

dict[a[0]]=1

lines=f.readline()

f.close()

return dict

def listdir(dir):

dict={}

regex = re.compile(r'\w*access_log\w*')

#print dir

list = os.listdir(dir)

for line in list:

filepath = os.path.join(dir,line)

if os.path.isdir(filepath):

print line

for li in os.listdir(filepath):

print "\t"+os.path.join(filepath,li)

m=re.search(regex,os.path.join(filepath,li))

if m:

print os.path.join(filepath,li)

deal_log(os.path.join(filepath,li),dict)

elif os.path:

print "\t"+filepath

m=re.search(regex,filepath)

if m:

print filepath

deal_log(filepath,dict)

print dict

#dir = raw_input('please input the path:')

listdir("/var/log")

2.使用os.walk

import os

def walk_dir(dir,topdown=true):

print os.walk(dir, topdown)

for root, dirs, files in os.walk(dir, topdown):

#print "#"*100

#print files

#print "#"*100

#print dirs

#print "*"*100

for name in files:

print(os.path.join(root,name))

for name in dirs:

print(os.path.join(root,name))

dir = raw_input('please input the path:')

walk_dir(dir)

fileinfo = open('list.txt','w')

os.walk 方便很多了.這個方法返回的是乙個三元tupple(dirpath, dirnames, filenames),

第乙個為起始路徑,

第二個為起始路徑下的資料夾,

第三個是起始路徑下的檔案.

dirpath是乙個string,代表目錄的路徑,

dirnames是乙個list,包含了dirpath下所有子目錄的名字,

filenames是乙個list,包含了非目錄檔案的名字.這些名字不包含路徑資訊,如果需要得到全路徑,需要使用 os.path.join(dirpath, name).

Python檔案遍歷

python檔案遍歷 重點 以下兩個方法裡面的path都是絕對路徑。os.path.isdir path os.path.isfile path 深度遍歷檔案 如下 借用棧的後進先出的思想實現給定path下檔案的遍歷 import os 新建乙個列表 stack def getalldirdep p...

Python迴圈遍歷檔案

for遍歷檔案 open aaa.py r readline 遍歷aaa.py的第一行,每個字元作為一行 open aaa.py r readlines 遍歷整個aaa.py文件,源文件一行作為遍歷的一行 open aaa.py r read 遍歷整個aaa.py文件,每個字元作為一行 r 表示已唯...

python遍歷目錄檔案

直接上 os.walk import os from os.path import join,getsize for root,dirs,files in os.walk python lib email print root,consumes print sum getsize join root...