如何使用Python获取某个路径下面所有文件的绝对路径以及其他操作
2014-10-04 23:42
936 查看
问题背景:
最近在用Python脚本处理文件夹下面的文件名的搜索和重命名。其中碰到如何递归遍历文件夹下面所有的文件,找到需要的文件,并且重命名的问题。其实如果看看Python的document,还是比较简单的,这里直接给出使用方法,免得大家还要花精力去查找。环境:
文件夹结构:----path1
----path1-1
----path1-1.1.txt
----path1-2
----path1.1.txt
----path2
----recursiveDir.py
文件夹结构如上所示。
代码分析(recursiveDir.py):
<span style="font-size:18px;">import os ''' 本脚本用来演示如何遍历py脚本所在文件夹下面所有的文件(包括子文件夹以及其中包含的文件)。 重点演示如何获取每个文件的绝对路径。注意os.path.join(dirpath, filename)的用法。 ''' rootdir = os.getcwd() print('rootdir = ' + rootdir) for (dirpath, dirnames, filenames) in os.walk(rootdir): #print('dirpath = ' + dirpath) for dirname in dirnames: print('dirname = ' + dirname) for filename in filenames: #下面的打印结果类似为:D:\pythonDirDemo\path1\path1-1\path1-1.1.txt print(os.path.join(dirpath, filename)) if(filename=='path1-1.1.txt'): os.chdir(dirpath) #os.rename(os.path.join(dirpath, filename), dirpath + os.sep + 'path1-1.1.new.txt') os.rename('path1-1.1.txt', 'path1-1.1.new.txt') #os.remove(os.path.join(dirpath, filename)) #下面的输出为fileName = path1-1.1.txt,并未包含绝对路径,所以需要使用os.path.join来链接,获取绝对路径 print('fileName = ' + filename) print('------------------one circle end-------------------')</span>
所以可以看到程序中使用os.path.join(dirpath, filename)来拼接出绝对路径出来。注意下面的重命名用法,可以将工作目录切换到os.chdir(dirpath),这样就可以直接用os.rename(oldfile, newfile).Python会自动到dirpath下面查找oldfile并且重命名为newfile。注意工作目录的含义:在Python的GUI中,使用os.getcwd()可以获取到当前工作目录。测试如下:
<span style="font-size:18px;">>>> os.chdir('D:') >>> os.getcwd() 'D:\\pythonDirDemo\\path1\\path1-1' >>> os.chdir('D:\\') >>> os.getcwd() 'D:\\'</span>
可见却是可以用chdir改变工作目录。这个代码只是在重命名的时候用到的小技巧而已,大家知道有这个东西就行了,不过调用chdir之后,后续再获取getcwd()就会被影响,所以警惕。
总结:
最重要的是参考os.path.join的用法。具体链接见Python的在线文档。顺便也可以看看os.walk的用法。相关文章推荐
- 编写文件搜索小程序:1. 输入绝对路径以及搜索关键字,2. 搜索指定路径下(包括子文件夹)中名称包含关键字的所有文件并打印出,3. 将当前操作记录日志
- 市面上所有号称"虚拟机","防火墙"的实时监控杀毒软件无一不是使用的IFSHOOK技术.但是同时也有一些朋友不断写MAIL给我打听如何实现读写的监控.下面给出用VTOOLSD写的代码.也就是所有实时杀毒软件的奥秘.同时,很多拦截文件操作的软件,例如对目录加
- python如何获取一个文件夹内包括子文件夹所有文件的名字和路径
- [置顶] 网页中使用pdf.js展示pdf文件,全屏问题以及绝对路径如何读取
- Python 小工具--实现获取文件夹下面所有文件操作
- Python获取指定路径下所有文件的绝对路径
- 使用linux命令获取文件夹下所有文件的绝对路径
- 如何获取getevent的输出,并且记录到文件中?使用python操作
- 使用Python获取绝对路径下的文件
- 获取当前文件夹下面某文件的所有绝对路径
- Python获取当前目录下所有文件的绝对路径并存储在文件中
- JAVA 一个简单的文件写入代码(遍历文件夹获取所有文件、写入缓冲池、获取文件绝对路径、按后缀名过滤文件)
- python获取指定路径下所有指定后缀文件的方法
- 在python中,如何获取脚本文件所在路径
- Android如何获取选择图片时的文件绝对路径方法
- python获取指定路径下所有指定后缀文件的方法
- 如何使用JS获取IE上传文件路径(IE7,8)
- java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中
- 使用jQuery获取部署文件的绝对路径
- python获取当前文件所在绝对路径