python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python查找特定名称文件

Python如何查找特定名称文件

作者:威斯登

这篇文章主要介绍了Python如何查找特定名称文件问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Python查找特定名称文件

问题描述

遍历“Day1-homework”目录下文件;

找到文件名包含“2020”的文件;

将文件名保存到数组result中;

按照序号、文件名分行打印输出。

result = []
i = 0
for root,dirs,files in os.walk('Day01-homework/'):   
    #指定目录,返回一个三元组(起始路径,起始路径下的文件夹名,起始路径下的文件名),其中第一个是string,后两个是list
    for file_name in files:
        if "2020" in file_name:                #查找2020字符串是否在文件名里,使用find好像不行         
            result = [os.path.join(root,file_name).replace('\\','/')]        
            #join进行字符串拼接,replace将\用/替代,其中'\\'是转义字符
            i += 1
            j = [i]
            print(j + result)

其中os.walk()方法是从当前python文件的目录里查找某一文件。

结果如下:

[1, 'Day01-homework/18/182020.docx']
[2, 'Day01-homework/26/26/new2020.txt']
[3, 'Day01-homework/4/22/04:22:2020.txt']

python查找指定格式文件并复制到指定目录

1、需求  

在linux 系统下,会对一些应用代码进行编译,生成".a"、".so"一类的文件到不同的目录和文件夹下,最后在调用时需要把他们放一个目录中,如果手动用指令实现非常不方便,现通过python来已经快速实现。

小记:

2、实现    

以下是通过 查找某个文件夹下".h"文件的例子,找到后加入到list中,再通过【复制】或【剪切】函数到指定目录,代码如下:

import os, shutil
file_list = []
# 搜索函数--可搜索指定目录上的文件夹下的文件。
def search_file(root, target):
    for file in os.listdir(root):
        path = root
        try:
            path = path + os.sep + file
            if os.path.isdir(path):
                search_file(path, target)
            else:
                if file.split('.')[-1] == target:
                    file_list.append(path)
        except PermissionError as e:
            print(e)
    return file_list
# 批量移动函数
def move_file(file_list, dest):
    for file in file_list:
        try:
            shutil.move(file, dest)
        except shutil.Error as e:
            print(e)
# 批量复制函数
def move_file(file_list, dest):
    for file in file_list:
        try:
            shutil.opy(file, dest)
        except shutil.Error as e:
            print(e)
# 写入目标参数root,
def main():
    # ---- windows
    # root = "D:\\pic1"
    # target = "png"
    # dest_dir = "D:\\ABC\\pic2"
    # -- linux --
    root = "/home/dsoftbus/cpp/pycopy"
    target = "h"
    dest_dir = "/home/dsoftbus/copy_file_h"
    result = search_file(root, target)
    print(result)
    # 剪切文件
    # move_file(result, dest_dir)
    # 复制文件
    copy_file(result,dest_dir)
    print("复制成功!!")
if __name__ == '__main__':
    main()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文