最近在用Python脚本处理文件夹下面的文件名的搜索和重命名。其中碰到如何递归遍历文件夹下面所有的文件,找到需要的文件,并且重命名的问题。其实如果看看Python的document,还是比较简单的,这里直接给出使用方法,免得大家还要花精力去查找。
环境:
文件夹结构:
----path1
----path1-1
----path1-11txt
----path1-2
----path11txt
----path2
----recursiveDirpy
文件夹结构如上所示。
代码分析(recursiveDirpy):
[python] view plaincopy
<span style="font-size:18px;">import os
'''''
本脚本用来演示如何遍历py脚本所在文件夹下面所有的文件(包括子文件夹以及其中包含的文件)。
重点演示如何获取每个文件的绝对路径。注意ospathjoin(dirpath, filename)的用法。
'''
rootdir = osgetcwd()
print('rootdir = ' + rootdir)
for (dirpath, dirnames, filenames) in oswalk(rootdir):
#print('dirpath = ' + dirpath)
for dirname in dirnames:
print('dirname = ' + dirname)
for filename in filenames:
#下面的打印结果类似为:D:\pythonDirDemo\path1\path1-1\path1-11txt
print(ospathjoin(dirpath, filename))
if(filename=='path1-11txt'):
oschdir(dirpath)
#osrename(ospathjoin(dirpath, filename), dirpath + ossep + 'path1-11newtxt')
osrename('path1-11txt', 'path1-11newtxt')
#osremove(ospathjoin(dirpath, filename))
#下面的输出为fileName = path1-11txt,并未包含绝对路径,所以需要使用ospathjoin来链接,获取绝对路径
print('fileName = ' + filename)
print('------------------one circle end-------------------')</span>
所以可以看到程序中使用ospathjoin(dirpath, filename)来拼接出绝对路径出来。注意下面的重命名用法,可以将工作目录切换到oschdir(dirpath),这样就可以直接用osrename(oldfile, newfile)Python会自动到dirpath下面查找oldfile并且重命名为newfile。注意工作目录的含义:在Python的GUI中,使用osgetcwd()可以获取到当前工作目录。测试如下:
[html] view plaincopy
<span style="font-size:18px;">>>> oschdir('D:')
>>> osgetcwd()
'D:\\pythonDirDemo\\path1\\path1-1'
>>> oschdir('D:\\')
>>> osgetcwd()
'D:\\'</span>
可见却是可以用chdir改变工作目录。这个代码只是在重命名的时候用到的小技巧而已,大家知道有这个东西就行了,不过调用chdir之后,后续再获取getcwd()就会被影响,所以警惕。
类似这样的代码 import a_module import os path =ospathdirname(amodule__file__) print path 比如在我的计算机上执行这样的结果。 john@john-desktop:~$ pythonPython 276 (default, Mar 22 2014, 22:59:56) [GCC 482] on linux2Type "
在文章 python获取当前最上层活动窗口的路径 中说明了如何用python脚本获取最上层活动窗口的路径,但是要求窗口标题栏中必须是窗口的绝对路径。
这个要求使得脚本使用起来非常得不方便,因此对上面那个脚本进行了改进,使得窗口标题栏为非绝对路径下也能使用。
可以通过获取地址栏里的文本(文件夹的绝对路径),如下图所示:
使用pyinstaller可以把py文件打包为exe可执行文件,命令为:
打包后有两个文件夹,一个是dist,另外一个是build,可执行文件在dist文件夹里面,但是会有许多依赖是独立文件存在
使用-F参数后,打包的可执行文件是一个整体,只有一个exe文件。
获取文件路径的方式有四种,可以在打包成exe文件后,获取exe文件的当前路径
在ide界面的执行结果如下:
在exe文件的执行结果为:我是把exe文件放到桌面运行的。
用内置函数: __file__
给一个Django的示例,这是获取当前文件的上一级目录的实例。
import os# Build paths inside the project like this: ospathjoin(BASE_DIR, )
BASE_DIR = ospathdirname(ospathdirname(ospathabspath(__file__)))
以上就是关于如何用python查询文件路劲全部的内容,包括:如何用python查询文件路劲、如何获取 Python 模块的路径、python获取当前最上层活动窗口的路径_version2等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)