本文目录一览:
- 1、python 如何实现两个目录下不同的文件,并输出不同文件的路径,将其写入txt中
- 2、如何利用Python遍历文件夹
- 3、Python中如何遍历指定目录下的所有文件?
- 4、如何用Python os.path.walk方法遍历搜索文件内容的操作详解
- 5、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:...
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:...
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