
环境:
文件夹结构:
----path1
----path1-1
----path1-1.1.txt
----path1-2
----path1.1.txt
----path2
----recursiveDir.py
文件夹结构如上所示。
代码分析(recursiveDir.py):
[python] view plaincopy
<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()可以获取到当前工作目录。测试如下:
[html] view plaincopy
<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()就会被影响,所以警惕。
linux下 可枯衫芦以先找到python的大致路径 然后执行 python -V
[root@host ~]# find / |grep "bin/python"/usr/bin/python
/usr/bin/python2
/usr/bin/python2.6
[root@host ~]# /usr/bin/python -V
Python 3.3.2 --如没带果是3的话 就应该是找到塌游了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)