python html5 bootstrap 视频教程

德云社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6564|回复: 2

python 2.7.8 下的简单目录文件 “遍历” 操作

[复制链接]

172

主题

258

帖子

1114

积分

版主

Rank: 7Rank: 7Rank: 7

金钱
663
金币
7
威望
0
贡献
0
发表于 2014-12-18 16:35:28 | 显示全部楼层 |阅读模式
AI人工智能 语音助理 人工翻译 教程

       python 作为脚本语言,在很多时候需要简单的 “遍历” 文件或目录。以下为一种简单目录文件“遍历” 操作案例,可把相应目录下所有文件的完整路径  “遍历” 保存到一单独自定义文件内。现分享一下源代码,大家一起共同进步:
  1. #!/usr/bin/env python2
  2. # -*- coding: UTF-8 -*-

  3. import os

  4. path = raw_input("Please typing pathname to read:")                     #要读取的带盘符完整目录路径

  5. witefile = raw_input("Please typing filepath to write:")                #要写入的带盘符完整文件路径

  6. def walk_dir(path):                                                     #自定义 walk_dir() 函数
  7.     walk_generate = os.walk(path)                                       #获取目录遍历生成器   
  8.     fullpath_namelist = []
  9.     for dirpath, dirnames, filenames in walk_generate:                  #提取目录遍历生成器元组元素
  10.         for filename in filenames:                                      #循环提取文件名
  11.             fullpath_name = dirpath.replace("\", "/") + "/" + filename #把 "\" 替换成 "/",拼接形成完整文件路径名
  12.             fullpath_namelist.append(fullpath_name)
  13.     return fullpath_namelist                        

  14. filepaths = walk_dir(path)                                                 #调用自定义 walk_dir() 函数

  15. print(filepaths)
  16. print(len(filepaths))

  17. copyfile = open(witefile, "w+")

  18. for filepath in filepaths:     
  19.     copyfile.write(filepath + "\n")    #换行写入文件
  20.     print(filepath)
  21.    
  22. 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 是目录路径字符串。dirnamesdirpath 下子目录名称列表 (不包括 '.'、'..')。filenamesdirpath 下非-目录文件名称列表。注意:列表中的名称不含路径分量。若想获得以 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 参数。
版权声明:
本文为独家原创稿件,版权归 德云社区,未经许可不得转载;否则,将追究法律责任。

AI人工智能 语音助理 人工翻译 教程
回复

使用道具 举报

172

主题

258

帖子

1114

积分

版主

Rank: 7Rank: 7Rank: 7

金钱
663
金币
7
威望
0
贡献
0
 楼主| 发表于 2014-12-18 16:35:42 | 显示全部楼层
AI人工智能 语音助理 人工翻译 教程
python 2.7.8 下的简单目录文件“遍历”操作
在线订购 便捷实惠 品质保证 终生保修
回复 支持 反对

使用道具 举报

172

主题

258

帖子

1114

积分

版主

Rank: 7Rank: 7Rank: 7

金钱
663
金币
7
威望
0
贡献
0
 楼主| 发表于 2014-12-18 16:35:51 | 显示全部楼层
AI人工智能 语音助理 人工翻译 教程
python 2.7.8 下的简单目录文件“遍历”操作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|Sitemap|小黑屋|德云社区 |网站地图  

GMT+8, 2024-11-23 12:09 , Processed in 0.029989 second(s), 28 queries .

工业和信息化部: 粤ICP备14079481号-2

技术支持 乐数软件     版权所有 © 2014-2021 德云社区    

快速回复 返回顶部 返回列表