1.需求描述
在D:\Files下有以下文件,如下图:
要求:
将Logan开头的文件名全部修改为工作文档
其他的文件名称全部添加前缀"工作文档_"
实现后的结果如下:
2.实现代码
# Author:Logan
# Date:/3/26 15:52
# IDE:PyCharm
import os
"""
info是一个元组tupple(dirpath, dirnames, filenames)
元组中的三个元素分别是:
dirpath -->> 代表目录的路径
dirnames -->> 包含了当前dirpath路径下所有的子目录名字(不包含目录路径)
filenames -->> 包含了当前dirpath路径下所有的非目录子文件的名字(不包含目录路径)
"""
path = 'D:\File\\'
def main():
for info in os.walk(path):
for file_name in info[2]:
if file_name.count('Logan'):
os.rename(path + file_name,path + '工作文档_' + file_name.split('_')[1])
elif file_name.count('工作文档_'):
pass
else:
os.rename(path + file_name, path + '工作文档_' + file_name)
if __name__ == '__main__':
main()
上述代码虽然也能实现,但是有个问题,如果【其他】文件夹下有文件,也会被修改文件名,这显然不是我们所希望的,所以就有了listdir,只显示当前目录下的文件和文件夹名称。此处不再写函数,只是写了个简单案例说明用法:
import os
path = 'D:\File\\'
def main():
for file in os.listdir(path):
file_path = os.path.join(path,file)
if os.path.isfile(file_path):
print(file_path)
elif os.path.isdir(file_path):
print('目录:' + file_path)
if __name__ == '__main__':
main()