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来已经快速实现。
小记:
- .a文件,是LINUX系统中的静态链接库文件。
- .so文件, 是LINUX系统中的动态链接库,名字形式多为 “libxxx.so” 后缀名为 “.so”
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()
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。