您的位置:

包含python实现遍历两个文件夹的词条

本文目录一览:

python 如何实现两个目录下不同的文件,并输出不同文件的路径,将其写入txt中

import os

def os_walker(folder):

    """遍历foler里面的文件"""

    path = os.path.abspath(folder)

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

        if dirs:

            continue

        #print root,dirs,files

        for f in files:

            yield f, os.path.abspath(os.path.join(root,f))

def compare(f1, f2):

    """"对比出两个文件夹里面的文件""""

    f1_list = {f:p for f,p in os_walker(f1)}

    f2_list = {f:p for f,p in os_walker(f2)}

    common = {_:f1_list[_] for _ in f1_list if _ in f2_list}

    print "common: ", common

    f1_specific = {_:f1_list[_] for _ in f1_list if _ not in f2_list}

    print "f1_specific", f1_specific

    f2_specific = {_:f2_list[_] for _ in f2_list if _ not in f1_list}

    print "f2_specific", f2_specific

compare("FOLDER1","FOLDER2")

这个代码有很多局限,比如没考虑子目录等,核心思想是用os.walk. 希望有帮助

如何利用Python遍历文件夹

import os

for roots, dirs, files in os.walk('.',topdown=True):

roots是所有的上层路径

dirs是所有的目录

files是所有的文件名

Python中如何遍历指定目录下的所有文件?

例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。

1.

os.walk

os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。

import

os

def

fun(

path

):...

for

root,

dirs,

files

in

os.walk(

path

):...

for

fn

in

files:...

print

root,

fn...

fun(

r'C:\TDDOWNLOAD'

)C:\TDDOWNLOAD

a.txtC:\TDDOWNLOAD

b.txtC:\TDDOWNLOAD\sub1

c.txtC:\TDDOWNLOAD\sub1

d.txt

2.

glob.glob

glob.glob()只接受一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文件夹,需要自己处理:

def

fun(

path

):...

for

fn

in

glob.glob(

path

+

os.sep

+

'*'

):

#

'*'代表匹配所有文件...

if

os.path.isdir(

fn

):

#

如果结果为文件夹...

fun(

fn

)

#

递归...

else:...

print

fn...

fun(

r'C:\TDDOWNLOAD'

)C:\TDDOWNLOAD\a.txtC:\TDDOWNLOAD\b.txtC:\TDDOWNLOAD\sub1\c.txtC:\TDDOWNLOAD\sub1\d.txt

'*'为匹配模式,代表匹配所有文件,只有这样才能将子文件夹查出来,以便递归深入,探查下一层的文件。

如何用Python os.path.walk方法遍历搜索文件内容的操作详解

本文是关于如何用Python os.path.walk方法遍历搜索文件目录内容的操作详解的文章,python 代码中用os.path.walk函数这个python模块的方法来遍历文件,python列出文件夹下的所有文件并找到自己想要的内容。

文中使用到了Python os模块和Python sys模块,这两个模块具体的使用方法请参考玩蛇网相关文章阅读。

Python os.path.walk方法遍历文件搜索内容方法代码如下:

?

1234567891011121314151617181920212223242526272829303132333435363738394041

import os, sys#代码中需要用到的方法模块导入 listonly = False skipexts = ['.gif', '.exe', '.pyc', '.o', '.a','.dll','.lib','.pdb','.mdb'] # ignore binary files def visitfile(fname, searchKey): global fcount, vcount try: if not listonly: if os.path.splitext(fname)[1] in skipexts: pass elif open(fname).read().find(searchKey) != -1: print'%s has %s' % (fname, searchKey) fcount += 1 except: pass vcount += 1 # def visitor(args, directoryName,filesInDirectory): for fname in filesInDirectory: fpath = os.path.join(directoryName, fname) if not os.path.isdir(fpath): visitfile(fpath,args) def searcher(startdir, searchkey): global fcount, vcount fcount = vcount = 0 os.path.walk(startdir, visitor, searchkey) if __name__ == '__main__': root=raw_input("type root directory:") key=raw_input("type key:") searcher(root,key) print 'Found in %d files, visited %d' % (fcount, vcount)

python 递归遍历文件夹

没有仔细看,但你的第一句就有错

def distinguish_file(user_paht):

参数应为user_path