|
python 作为脚本语言,在很多时候需要简单的 “遍历” 文件或目录。以下为一种简单目录文件“遍历” 操作案例,可把相应目录下所有文件的完整路径 “遍历” 保存到一单独自定义文件内。现分享一下源代码,大家一起共同进步:
- #!/usr/bin/env python2
- # -*- coding: UTF-8 -*-
- import os
- path = raw_input("Please typing pathname to read:") #要读取的带盘符完整目录路径
- witefile = raw_input("Please typing filepath to write:") #要写入的带盘符完整文件路径
- def walk_dir(path): #自定义 walk_dir() 函数
- walk_generate = os.walk(path) #获取目录遍历生成器
- fullpath_namelist = []
- for dirpath, dirnames, filenames in walk_generate: #提取目录遍历生成器元组元素
- for filename in filenames: #循环提取文件名
- fullpath_name = dirpath.replace("\", "/") + "/" + filename #把 "\" 替换成 "/",拼接形成完整文件路径名
- fullpath_namelist.append(fullpath_name)
- return fullpath_namelist
- filepaths = walk_dir(path) #调用自定义 walk_dir() 函数
- print(filepaths)
- print(len(filepaths))
- copyfile = open(witefile, "w+")
- for filepath in filepaths:
- copyfile.write(filepath + "\n") #换行写入文件
- print(filepath)
-
- copyfile.close()
复制代码 1、raw_input() 内置函数社区内已有相关主题,不多说。请 "单击此处" 前往查看。
2、open() 内置函数社区内也有相关主题,不多说。请 "单击此处" 前往查看。
3、for 循环很简单且常用,也不多说。
4、def 自定义函数,请 "单击此处" 前往查看。
5、file.write()、file.close() 方法社区内也有相关主题,请 "单击此处" 前往查看。
6、这里主要讲一下 os.walk() 函数,此源代码的重点使用就是它。以下为官方原 EN 中文翻译,大家可参考一下:
os.walk() 函数官方原 EN 帮助文档编制中文翻译
按自顶-向下或自底-向上方式遍历树,生成目录树文件名。扎根于 top (包括 top 自身) 目录的各树目录会产生 (dirpath, dirnames, filenames) 3-元组。
dirpath 是目录路径字符串。dirnames 是 dirpath 下子目录名称列表 (不包括 '.'、'..')。filenames 是 dirpath 下非-目录文件名称列表。注意:列表中的名称不含路径分量。若想获得以 top 开头的 dirpath 下文件或目录的完整路径,可调用 os.path.join(dirpath, name) 函数。
若可选 topdown 自变量为 True 或不指定,在自顶-向下生成任何子目录 3 元组前会先生成目录 3 元组。若 topdown 为 False,在自底-向上生成所有子目录 3 元组后才会生成目录 3 元组。不管 topdown 值,在生成目录及其子目录元组前会检索子目录列表。
当 topdown 为 True 时,调用者会原-位修改 dirnames 列表 (可能使用 del 或切片赋值),且 walk() 函数只会递归到名称留在 dirnames 下的子目录;这能修剪搜索,施加特定拜访次序,甚至通报 walk() 函数调用者创建或重命名有关目录,在再次重新开始 walk() 函数前。当 topdown 为 False 时,修改 dirnames 会不起作用;因为,生成 dirpath 本身前会按自底-向上方式生成 dirnames 中目录。
默认情况下,会忽略调用 listdir() 函数时的错误。若指定的话,可选 onerror 自变量应为函数;会采用一 OSError (操作系统错误) 实例自变量调用该函数。它会报告错误以继续遍历或引发中止遍历异常。注意:文件名可用作异常对象 filename (文件名) 属性。
默认情况下,walk() 函数不会遍历解析目录符号链接。把 followlinks 设为 True 可拜访符号链接 (当系统支持时) 指向目录。
2.6 版新增:followlinks 参数。 | 版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究法律责任。
|
|